2024-03-10 00:19:43 +00:00
|
|
|
cmake_minimum_required(VERSION 3.19)
|
2024-03-13 18:13:55 +00:00
|
|
|
cmake_policy(VERSION 3.19...3.28.3)
|
auto deps for visual studio, take 1
Use vcpkg to build deps when Visual Studio on Windows is detected, this
only happens on first build, but does take a while because things like
wxWidgets need to be built. Building from the developer command line is
also supported.
I considered making a pre-built tarball available, but the resulting
files are just too big for this to be practical.
Make the necessary cmake code changes for this to work and to use the
vcpkg packages, which work just like on linux or have other cmake glue
code available.
To do this, we make vcpkg a submodule, use git to checkout all
submodules, then just build and use the `vcpkg.exe`. Then we set the
CMAKE_TOOLCHAIN_FILE to the vcpkg toolchain and also include it
directly, why this is necessary I don't know, without it it doesn't work
in the IDE but does on the command line.
All of this requires no vcpkg integration with either the user or the
project. A user-wide `ENV{VCPKG_ROOT}` is also supported.
Fix the dynamic arrays in the GBA core, MSVC follows the C++ standard on
this and gcc does not.
TODO: add the necessary gcc flags to make this an error in cmake.
Use `wxArrayString` instead of `std::vector<wxString>` in
`src/wx/strutils.cpp` which is used in options parsing. This was
necessary because of a bizarre linker error with wxWidgets when using
Visual Studio:
https://trac.wxwidgets.org/ticket/10884#comment:46
In `src/wx/panel.cpp` make sure the unimplemented D3D renderer code does
not get compiled if it's actually `OFF`.
Also fix the new spacer code for the drawing panel to not combine
`wxEXPAND` with `wxALIGN_CENTER`, which is an error on wxWidgets 3.1.2,
which is what vcpkg uses. The drawing panel seems to be automatically
stretched to the max size automatically anyway.
TODO: if all of this works, we'll need an Appveyor set up for visual
studio.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2019-03-21 23:01:46 +00:00
|
|
|
|
2019-07-03 23:28:48 +00:00
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
auto deps for visual studio, take 1
Use vcpkg to build deps when Visual Studio on Windows is detected, this
only happens on first build, but does take a while because things like
wxWidgets need to be built. Building from the developer command line is
also supported.
I considered making a pre-built tarball available, but the resulting
files are just too big for this to be practical.
Make the necessary cmake code changes for this to work and to use the
vcpkg packages, which work just like on linux or have other cmake glue
code available.
To do this, we make vcpkg a submodule, use git to checkout all
submodules, then just build and use the `vcpkg.exe`. Then we set the
CMAKE_TOOLCHAIN_FILE to the vcpkg toolchain and also include it
directly, why this is necessary I don't know, without it it doesn't work
in the IDE but does on the command line.
All of this requires no vcpkg integration with either the user or the
project. A user-wide `ENV{VCPKG_ROOT}` is also supported.
Fix the dynamic arrays in the GBA core, MSVC follows the C++ standard on
this and gcc does not.
TODO: add the necessary gcc flags to make this an error in cmake.
Use `wxArrayString` instead of `std::vector<wxString>` in
`src/wx/strutils.cpp` which is used in options parsing. This was
necessary because of a bizarre linker error with wxWidgets when using
Visual Studio:
https://trac.wxwidgets.org/ticket/10884#comment:46
In `src/wx/panel.cpp` make sure the unimplemented D3D renderer code does
not get compiled if it's actually `OFF`.
Also fix the new spacer code for the drawing panel to not combine
`wxEXPAND` with `wxALIGN_CENTER`, which is an error on wxWidgets 3.1.2,
which is what vcpkg uses. The drawing panel seems to be automatically
stretched to the max size automatically anyway.
TODO: if all of this works, we'll need an Appveyor set up for visual
studio.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2019-03-21 23:01:46 +00:00
|
|
|
|
2022-11-28 18:27:06 +00:00
|
|
|
if(WIN32)
|
|
|
|
include(RemoveStrawberryPerlFromPATH)
|
2024-09-07 06:30:14 +00:00
|
|
|
|
|
|
|
find_program(POWERSHELL
|
|
|
|
NAMES powershell.exe pwsh.exe
|
|
|
|
HINTS "/Windows/System32/WindowsPowerShell/v1.0"
|
|
|
|
REQUIRED)
|
|
|
|
else()
|
|
|
|
find_program(POWERSHELL pwsh)
|
2022-11-28 18:27:06 +00:00
|
|
|
endif()
|
|
|
|
|
2020-02-08 22:53:53 +00:00
|
|
|
if(UPDATE_APPCAST)
|
|
|
|
include(UpdateAppcast)
|
|
|
|
endif()
|
|
|
|
|
2020-02-08 23:22:31 +00:00
|
|
|
if(TAG_RELEASE)
|
|
|
|
include(MakeReleaseCommitAndTag)
|
|
|
|
endif()
|
|
|
|
|
2024-11-25 05:07:21 +00:00
|
|
|
set(VCPKG_DEPS pkgconf zlib pthreads "sdl2[samplerate]" gettext)
|
2020-08-26 10:07:04 +00:00
|
|
|
|
|
|
|
set(VCPKG_DEPS_OPTIONAL
|
2023-04-11 23:17:06 +00:00
|
|
|
sfml ENABLE_LINK
|
2020-08-26 10:07:04 +00:00
|
|
|
ffmpeg ENABLE_FFMPEG
|
2024-04-01 14:17:48 +00:00
|
|
|
faudio ENABLE_FAUDIO
|
2020-08-26 10:07:04 +00:00
|
|
|
)
|
cmake: Visual Studio support improvements.
Add support for vcpkg ffmpeg, this requires using someone's
FindFFmpeg.cmake instead of relying on pkg-config, since vcpkg does not
have pkg-config.
Do not use the ffmpeg from vcpkg on appveyor however, because that
pushes the build cache generation over the time limit for jobs.
Add secur32 and bcrypt to the list of ffmpeg libs on windows, these are
standard windows libraries.
Change some code in ffmpeg.cpp to remove C-style casts of struct
initializers, which are illegal in MSVC.
Add the INT64_C and UINT64_C macros missing in MSVC's stdint.h (if not
defined) to ffmpeg.h before the ffmpeg headers are included, because
they rely on them.
Rewrite the wxWidgets finding code for the vcpkg wxWidgets to be nicer
and work correctly for debug and static builds.
Remove all /W* and /w* warnings options from cmake compiler flags, and
replace them with /W4 for debug builds, and /w (no warnings) for release
modes.
When building a static binary, remove all /MD* flags from cmake compiler
flags, and use /MT for static release builds and /MTd for static debug
builds.
Improve the vcpkg toolchain wrapper to only rebuild the vcpkg binary if
there were git updates.
Redo the handling of SDL2 and SDL_main. Only link SDL2Main to the SDL
binary and don't use the definitions.
Update CMakeSettings.json to use Ninja and include static
configurations.
Use CMAKE_PROJECT_DIR instead of CMAKE_SOURCE_DIR to determine the vcpkg
root, as CMAKE_SOURCE_DIR is sometimes set incorrectly in the 2017 GUI.
Add /nodefaultlib:libcmt to the debug build link flags, as in debug
builds libcmtd is used and libcmt should not be.
Add /subsystem:console to debug build link flags to produce a windows
console app for debug builds, like we do for mingw builds. To do this,
define a WIN32_CONSOLE_APP macro and if set, define a main() that calls
WinMain().
Call wxMesdsageOutput::Set() in OnInit with an instance of
wxMessageOutputStderr for windows debug builds to make sure the --help
text etc. goes to the console instead of a popup box.
Update the Visual Studio related text in README.md.
Fix dynamic debug builds by linking to the debug version of SDL2 and
copying the debug version of the dll to the build dir.
Fix issue in MainFrame::BindAppIcon with the function we are using not
being found in a Windows DLL in debug builds by using
wxDynamicLibrary::GetSymboolAorW() instead of GetSymbol().
Enable LTO for MSVC in Release modes, if the option is set.
Change appveyor config to use an 8 item build matrix of
x64/x86 / Release/Debug / Static/Dynamic. And test the binary in debug
modes by running --help.
When copying the wxrc.exe out of the build tree, copy both the release
and debug versions, this is so that appveyor caching of vcpkg works,
since the build trees are not cached.
Add some necessary win32 libraries to the SDL binary. And enable
building it on appveyor.
Fix #465.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2019-12-10 11:13:58 +00:00
|
|
|
|
2019-07-03 23:28:48 +00:00
|
|
|
include(Set-Toolchain-vcpkg)
|
auto deps for visual studio, take 1
Use vcpkg to build deps when Visual Studio on Windows is detected, this
only happens on first build, but does take a while because things like
wxWidgets need to be built. Building from the developer command line is
also supported.
I considered making a pre-built tarball available, but the resulting
files are just too big for this to be practical.
Make the necessary cmake code changes for this to work and to use the
vcpkg packages, which work just like on linux or have other cmake glue
code available.
To do this, we make vcpkg a submodule, use git to checkout all
submodules, then just build and use the `vcpkg.exe`. Then we set the
CMAKE_TOOLCHAIN_FILE to the vcpkg toolchain and also include it
directly, why this is necessary I don't know, without it it doesn't work
in the IDE but does on the command line.
All of this requires no vcpkg integration with either the user or the
project. A user-wide `ENV{VCPKG_ROOT}` is also supported.
Fix the dynamic arrays in the GBA core, MSVC follows the C++ standard on
this and gcc does not.
TODO: add the necessary gcc flags to make this an error in cmake.
Use `wxArrayString` instead of `std::vector<wxString>` in
`src/wx/strutils.cpp` which is used in options parsing. This was
necessary because of a bizarre linker error with wxWidgets when using
Visual Studio:
https://trac.wxwidgets.org/ticket/10884#comment:46
In `src/wx/panel.cpp` make sure the unimplemented D3D renderer code does
not get compiled if it's actually `OFF`.
Also fix the new spacer code for the drawing panel to not combine
`wxEXPAND` with `wxALIGN_CENTER`, which is an error on wxWidgets 3.1.2,
which is what vcpkg uses. The drawing panel seems to be automatically
stretched to the max size automatically anyway.
TODO: if all of this works, we'll need an Appveyor set up for visual
studio.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2019-03-21 23:01:46 +00:00
|
|
|
|
Refactor cmake ccache support and support MSVC.
Don't disable ccache for msys+ninja anymore, since the mingw ccache
works now and there is no reason to use the msys ccache anymore.
Use RULE_LAUNCH_COMPILE only on cmake versions < 3.4.0, because this
currently breaks resource compilation with visual studio and the windows
native ccache from chocolatey, this needs to be fixed in ccache.
On cmake 3.4.0 and greater, set the variables
CMAKE_<LANG>_COMPILER_LAUNCHER instead. This has the effect of using
ccache for C, C++ and nasm, but not for the resource file, avoiding the
problem with visual studio, which has a more recent cmake. This must be
done before the project() call.
TODO: Currently the Visual Studio build with ccache from chocolatey
works correctly, ccache is being invoked from ninja, but no cache files
are being created. This is being followed up with the chocolatey package
maintainer and upstream if necessary. The resource compiler issue also
needs to be fixed upstream.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2020-07-30 22:27:21 +00:00
|
|
|
# Use ccache if available and not already enabled on the command line.
|
|
|
|
# This has to be done before the project() call.
|
2022-06-15 01:00:13 +00:00
|
|
|
if(NOT CMAKE_CXX_COMPILER_LAUNCHER)
|
Refactor cmake ccache support and support MSVC.
Don't disable ccache for msys+ninja anymore, since the mingw ccache
works now and there is no reason to use the msys ccache anymore.
Use RULE_LAUNCH_COMPILE only on cmake versions < 3.4.0, because this
currently breaks resource compilation with visual studio and the windows
native ccache from chocolatey, this needs to be fixed in ccache.
On cmake 3.4.0 and greater, set the variables
CMAKE_<LANG>_COMPILER_LAUNCHER instead. This has the effect of using
ccache for C, C++ and nasm, but not for the resource file, avoiding the
problem with visual studio, which has a more recent cmake. This must be
done before the project() call.
TODO: Currently the Visual Studio build with ccache from chocolatey
works correctly, ccache is being invoked from ninja, but no cache files
are being created. This is being followed up with the chocolatey package
maintainer and upstream if necessary. The resource compiler issue also
needs to be fixed upstream.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2020-07-30 22:27:21 +00:00
|
|
|
find_program(CCACHE_EXECUTABLE ccache)
|
|
|
|
if(CCACHE_EXECUTABLE)
|
|
|
|
message(STATUS "Enabling ccache")
|
|
|
|
|
2022-02-02 22:27:39 +00:00
|
|
|
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_EXECUTABLE} CACHE STRING "C compiler launcher" FORCE)
|
|
|
|
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_EXECUTABLE} CACHE STRING "C++ compiler launcher" FORCE)
|
|
|
|
set(CMAKE_ASM_NASM_COMPILER_LAUNCHER ${CCACHE_EXECUTABLE} CACHE STRING "nasm assembler launcher" FORCE)
|
Refactor cmake ccache support and support MSVC.
Don't disable ccache for msys+ninja anymore, since the mingw ccache
works now and there is no reason to use the msys ccache anymore.
Use RULE_LAUNCH_COMPILE only on cmake versions < 3.4.0, because this
currently breaks resource compilation with visual studio and the windows
native ccache from chocolatey, this needs to be fixed in ccache.
On cmake 3.4.0 and greater, set the variables
CMAKE_<LANG>_COMPILER_LAUNCHER instead. This has the effect of using
ccache for C, C++ and nasm, but not for the resource file, avoiding the
problem with visual studio, which has a more recent cmake. This must be
done before the project() call.
TODO: Currently the Visual Studio build with ccache from chocolatey
works correctly, ccache is being invoked from ninja, but no cache files
are being created. This is being followed up with the chocolatey package
maintainer and upstream if necessary. The resource compiler issue also
needs to be fixed upstream.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
2020-07-30 22:27:21 +00:00
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2024-03-15 16:19:01 +00:00
|
|
|
find_package(Git)
|
|
|
|
|
|
|
|
# Make sure we pull in the submodules on windows and mingw.
|
2024-03-30 20:14:32 +00:00
|
|
|
if(GIT_FOUND AND WIN32)
|
2024-03-15 16:19:01 +00:00
|
|
|
# Win32 deps submodule
|
|
|
|
set(SUBMODULE_MANUAL_UPDATE FALSE)
|
|
|
|
|
2024-10-04 20:05:52 +00:00
|
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/.git" AND NOT EXISTS "${CMAKE_SOURCE_DIR}/win32-deps/mingw-xaudio/include")
|
2024-03-15 16:19:01 +00:00
|
|
|
set(SUBMODULE_MANUAL_UPDATE TRUE)
|
|
|
|
execute_process(
|
|
|
|
COMMAND "${GIT_EXECUTABLE}" submodule update --init --remote --recursive
|
|
|
|
RESULT_VARIABLE SUBMODULE_UPDATE_STATUS
|
|
|
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2024-10-04 20:05:52 +00:00
|
|
|
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/win32-deps/mingw-xaudio/include")
|
2024-03-15 16:19:01 +00:00
|
|
|
if(NOT (SUBMODULE_MANUAL_UPDATE AND SUBMODULE_UPDATE_STATUS EQUAL 0))
|
|
|
|
message(FATAL_ERROR "Please pull in git submodules, e.g.\nrun: git submodule update --init --remote --recursive")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2023-08-27 08:04:57 +00:00
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
2024-03-13 18:13:55 +00:00
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
|
|
set(CMAKE_C_STANDARD_REQUIRED True)
|
2010-03-15 03:36:45 +00:00
|
|
|
|
2024-11-25 05:07:21 +00:00
|
|
|
set(VBAM_LANGUAGES C CXX)
|
|
|
|
if(APPLE)
|
|
|
|
list(APPEND VBAM_LANGUAGES OBJCXX)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
project(VBA-M ${VBAM_LANGUAGES})
|
2016-11-20 19:11:52 +00:00
|
|
|
|
2024-05-06 04:28:55 +00:00
|
|
|
include(GNUInstallDirs)
|
|
|
|
include(Architecture)
|
2024-05-09 02:34:25 +00:00
|
|
|
include(Options)
|
2024-05-06 04:28:55 +00:00
|
|
|
include(Toolchain)
|
|
|
|
include(Dependencies)
|
|
|
|
|
2024-11-25 05:07:21 +00:00
|
|
|
function(configure_vbam_target target)
|
|
|
|
get_target_property(target_type ${target} TYPE)
|
|
|
|
if(target_type STREQUAL "INTERFACE_LIBRARY")
|
|
|
|
set(target_scope "INTERFACE")
|
|
|
|
else()
|
|
|
|
set(target_scope "PRIVATE")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
target_compile_definitions(${target} ${target_scope} ${VBAM_COMPILE_DEFS})
|
|
|
|
target_compile_options(${target} ${target_scope} ${VBAM_COMPILE_OPTS})
|
|
|
|
target_link_options(${target} ${target_scope} ${VBAM_LINK_OPTS})
|
|
|
|
endfunction()
|
|
|
|
|
2024-09-13 16:29:25 +00:00
|
|
|
# Disable tests when not in a git checkout.
|
|
|
|
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|
|
|
set(BUILD_TESTING OFF)
|
|
|
|
endif()
|
|
|
|
|
2024-05-06 04:28:55 +00:00
|
|
|
# Configure gtest
|
|
|
|
if(BUILD_TESTING)
|
|
|
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
2024-11-24 20:39:10 +00:00
|
|
|
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
|
2024-11-25 05:07:21 +00:00
|
|
|
add_subdirectory(third_party/googletest)
|
2024-05-06 04:28:55 +00:00
|
|
|
include(GoogleTest)
|
|
|
|
endif()
|
|
|
|
|
2024-11-25 05:07:21 +00:00
|
|
|
# Configure wxWidgets.
|
|
|
|
if(NOT VBAM_DEPS_wxWidgets_SYSTEM)
|
|
|
|
set(wxBUILD_SHARED OFF CACHE BOOL "" FORCE)
|
|
|
|
set(wxBUILD_INSTALL OFF CACHE BOOL "" FORCE)
|
|
|
|
set(wxUSE_WEBVIEW OFF CACHE BOOL "" FORCE)
|
|
|
|
set(wxWidgets_SOURCE_DIR "${CMAKE_SOURCE_DIR}/third_party/wxWidgets")
|
|
|
|
add_subdirectory(third_party/wxWidgets)
|
|
|
|
set(wxWidgets_LIBRARIES wx::xrc wx::xml wx::html wx::adv wx::net wx::core wx::base wx::gl)
|
|
|
|
set(wxWidgets_INCLUDE_DIRS third_party/wxWidgets/include)
|
|
|
|
endif()
|
|
|
|
|
2018-02-24 19:39:29 +00:00
|
|
|
if(NOT CMAKE_PREFIX_PATH AND (NOT ("$ENV{CMAKE_PREFIX_PATH}" STREQUAL "")))
|
|
|
|
set(CMAKE_PREFIX_PATH "$ENV{CMAKE_PREFIX_PATH}")
|
|
|
|
endif()
|
|
|
|
|
2023-02-21 20:53:20 +00:00
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
|
|
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Type" FORCE)
|
2022-02-02 22:27:39 +00:00
|
|
|
elseif(NOT CMAKE_BUILD_TYPE MATCHES "^(Release|Debug|RelWithDebInfo|MinSizeRel)$")
|
|
|
|
message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE: '${CMAKE_BUILD_TYPE}', must be one of: 'Release', 'Debug', 'RelWithDebInfo' or 'MinSizeRel'")
|
2018-02-24 19:39:29 +00:00
|
|
|
endif()
|
2016-11-20 19:11:52 +00:00
|
|
|
|
2024-03-31 01:16:36 +00:00
|
|
|
set(MSYS OFF)
|
|
|
|
if(NOT "$ENV{MSYSTEM_PREFIX}" STREQUAL "")
|
2024-03-30 18:06:25 +00:00
|
|
|
set(MSYS ON)
|
|
|
|
endif()
|
|
|
|
|
2024-03-13 18:13:55 +00:00
|
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
2017-10-07 21:00:47 +00:00
|
|
|
include(GitTagVersion)
|
2024-03-15 23:05:09 +00:00
|
|
|
git_version(VBAM_VERSION VBAM_REVISION VBAM_VERSION_RELEASE)
|
2017-08-27 20:15:29 +00:00
|
|
|
|
|
|
|
# only use the plugin to tie the configure state to the sha to force rebuilds
|
|
|
|
# of files that depend on version.h
|
|
|
|
include(GetGitRevisionDescription)
|
|
|
|
get_git_head_revision(REFSPEC COMMITHASH)
|
2020-03-05 15:04:19 +00:00
|
|
|
|
|
|
|
# Make sure old tags are gone from all clones.
|
|
|
|
execute_process(
|
|
|
|
COMMAND ${GIT_EXECUTABLE} tag -l
|
|
|
|
OUTPUT_VARIABLE git_tags
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
)
|
|
|
|
|
|
|
|
string(REGEX REPLACE ";" "\\\\;" git_tags_lines "${git_tags}")
|
|
|
|
string(REGEX REPLACE "\r?\n" ";" git_tags_lines "${git_tags_lines}")
|
|
|
|
|
|
|
|
set(found_old_tags FALSE)
|
|
|
|
|
|
|
|
foreach(tag ${git_tags_lines})
|
|
|
|
if(NOT tag MATCHES "^v[0-9]")
|
|
|
|
set(found_old_tags TRUE)
|
|
|
|
break()
|
|
|
|
endif()
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
if(found_old_tags)
|
|
|
|
# Delete all tags and fetch them from the origin.
|
|
|
|
|
|
|
|
foreach(tag ${git_tags_lines})
|
|
|
|
execute_process(
|
|
|
|
COMMAND ${GIT_EXECUTABLE} tag -d ${tag}
|
|
|
|
OUTPUT_QUIET
|
|
|
|
ERROR_QUIET
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
)
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
execute_process(
|
2020-03-07 11:36:40 +00:00
|
|
|
COMMAND ${GIT_EXECUTABLE} fetch --tags origin
|
2020-03-05 15:04:19 +00:00
|
|
|
OUTPUT_QUIET
|
|
|
|
ERROR_QUIET
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
)
|
|
|
|
endif()
|
2017-10-08 01:17:52 +00:00
|
|
|
endif()
|
2017-08-27 20:15:29 +00:00
|
|
|
|
2017-10-12 02:17:25 +00:00
|
|
|
# no git or no tags, use ChangeLog
|
2024-03-15 23:05:09 +00:00
|
|
|
if(NOT VBAM_VERSION)
|
2017-10-12 02:17:25 +00:00
|
|
|
include(ChangeLogVersion)
|
2024-03-15 23:05:09 +00:00
|
|
|
changelog_version(VBAM_VERSION VBAM_REVISION VBAM_VERSION_RELEASE)
|
2017-08-27 20:15:29 +00:00
|
|
|
endif()
|
|
|
|
|
2011-02-24 13:06:17 +00:00
|
|
|
# Enable internationalization
|
2024-03-27 00:00:53 +00:00
|
|
|
set(LOCALEDIR ${CMAKE_INSTALL_PREFIX}/share/locale)
|
2011-02-24 13:06:17 +00:00
|
|
|
|
2021-12-19 13:57:05 +00:00
|
|
|
if(NOT TRANSLATIONS_ONLY)
|
2024-03-16 23:45:13 +00:00
|
|
|
add_subdirectory(third_party/include/nonstd)
|
2024-03-16 01:25:04 +00:00
|
|
|
add_subdirectory(third_party/include/stb)
|
2024-03-16 20:19:05 +00:00
|
|
|
add_subdirectory(src/core)
|
2024-03-16 23:45:13 +00:00
|
|
|
add_subdirectory(src/components)
|
2024-03-17 01:18:36 +00:00
|
|
|
add_subdirectory(src/sdl)
|
2018-02-24 19:39:29 +00:00
|
|
|
endif()
|
2015-05-18 00:28:34 +00:00
|
|
|
|
2024-03-27 00:00:53 +00:00
|
|
|
add_subdirectory(src/wx)
|
2024-03-18 01:33:46 +00:00
|
|
|
add_subdirectory(po/wxvbam)
|
2015-05-18 00:28:34 +00:00
|
|
|
|
2018-02-24 19:39:29 +00:00
|
|
|
set(CPACK_GENERATOR "ZIP")
|
2015-06-15 13:00:47 +00:00
|
|
|
set(CPACK_SOURCE_GENERATOR "TGZ")
|
2018-02-24 19:39:29 +00:00
|
|
|
set(CPACK_PACKAGE_VERSION_MAJOR "2")
|
|
|
|
set(CPACK_PACKAGE_VERSION_MINOR "0")
|
2020-12-11 14:09:03 +00:00
|
|
|
set(CPACK_PACKAGE_VERSION_PATCH "0-Git-${COMMITHASH}")
|
2024-10-04 20:05:52 +00:00
|
|
|
list(APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/win32-deps")
|
2018-02-24 19:39:29 +00:00
|
|
|
include(CPack)
|