2021-06-11 19:24:52 +02:00
# MassBuilderSaveTool
2024-03-08 20:25:32 +01:00
# Copyright (C) 2021-2024 Guillaume Jacquemin
2021-06-11 19:24:52 +02:00
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
2023-08-28 13:14:00 +02:00
cmake_minimum_required ( VERSION 3.24 )
2021-06-11 19:24:52 +02:00
project ( MassBuilderSaveTool )
set ( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/modules/" ${ CMAKE_MODULE_PATH } )
2023-08-28 13:14:00 +02:00
set ( ZLIB_USE_STATIC_LIBS ON CACHE BOOL "" FORCE ) # Required on setups where zlib is available as both dynamic and static libs. Which is pretty much everywhere, actually.
2021-06-11 19:24:52 +02:00
2023-08-27 22:31:54 +02:00
option ( SAVETOOL_USE_SYSTEM_LIBS "Use system-wide versions of the dependencies instead of the versions provided by submodules." OFF )
2021-06-11 19:24:52 +02:00
2023-08-28 13:10:41 +02:00
if ( NOT SAVETOOL_USE_SYSTEM_LIBS )
2023-08-27 22:31:54 +02:00
# Generic variables shared by multiple libs that don't provide their own.
set ( BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE )
set ( BUILD_TESTING OFF CACHE BOOL "" FORCE )
2021-06-11 19:24:52 +02:00
2023-08-27 22:31:54 +02:00
set ( CORRADE_BUILD_DEPRECATED OFF CACHE BOOL "" FORCE )
set ( CORRADE_BUILD_STATIC ON CACHE BOOL "" FORCE )
set ( CORRADE_BUILD_STATIC_PIC ON CACHE BOOL "" FORCE )
set ( CORRADE_BUILD_STATIC_UNIQUE_GLOBALS OFF CACHE BOOL "" FORCE )
set ( CORRADE_BUILD_TESTS OFF CACHE BOOL "" FORCE )
set ( CORRADE_WITH_INTERCONNECT OFF CACHE BOOL "" FORCE )
set ( CORRADE_WITH_PLUGINMANAGER OFF CACHE BOOL "" FORCE )
set ( CORRADE_WITH_TESTSUITE OFF CACHE BOOL "" FORCE )
set ( CORRADE_WITH_MAIN ON CACHE BOOL "" FORCE )
set ( CORRADE_UTILITY_USE_ANSI_COLORS ON CACHE BOOL "" FORCE )
add_subdirectory ( third-party/corrade EXCLUDE_FROM_ALL )
2022-07-06 17:22:40 +02:00
2023-08-27 22:31:54 +02:00
set ( DIRECTX OFF CACHE BOOL "" FORCE ) # We use OpenGL.
set ( SDL_ATOMIC OFF CACHE BOOL "" FORCE )
set ( SDL_CPUINFO OFF CACHE BOOL "" FORCE )
set ( SDL_EVENTS ON CACHE BOOL "" FORCE )
set ( SDL_FILE OFF CACHE BOOL "" FORCE )
set ( SDL_FILESYSTEM OFF CACHE BOOL "" FORCE )
set ( SDL_HAPTIC OFF CACHE BOOL "" FORCE )
set ( SDL_LOCALE OFF CACHE BOOL "" FORCE )
set ( SDL_POWER OFF CACHE BOOL "" FORCE )
set ( SDL_RENDER OFF CACHE BOOL "" FORCE )
set ( SDL_SENSOR OFF CACHE BOOL "" FORCE )
set ( SDL_THREADS ON CACHE BOOL "" FORCE )
set ( SDL_TIMERS ON CACHE BOOL "" FORCE )
set ( SDL_SHARED OFF CACHE BOOL "" FORCE )
add_subdirectory ( third-party/SDL EXCLUDE_FROM_ALL )
2021-06-11 19:24:52 +02:00
2023-08-27 22:31:54 +02:00
set ( MAGNUM_BUILD_STATIC ON CACHE BOOL "" FORCE )
set ( MAGNUM_BUILD_STATIC_PIC ON CACHE BOOL "" FORCE )
set ( MAGNUM_BUILD_STATIC_UNIQUE_GLOBALS OFF CACHE BOOL "" FORCE )
set ( MAGNUM_BUILD_DEPRECATED OFF CACHE BOOL "" FORCE )
set ( MAGNUM_BUILD_TESTS OFF CACHE BOOL "" FORCE )
2021-06-11 19:24:52 +02:00
2023-08-27 22:31:54 +02:00
set ( MAGNUM_TARGET_GL ON CACHE BOOL "" FORCE )
set ( MAGNUM_TARGET_GLES OFF CACHE BOOL "" FORCE )
set ( MAGNUM_TARGET_VK OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_AUDIO OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_DEBUGTOOLS OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_GL ON CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_MATERIALTOOLS OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_MESHTOOLS OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_PRIMITIVES OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_SCENEGRAPH OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_SCENETOOLS OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_SHADERS ON CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_SHADERTOOLS OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_TEXT OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_TEXTURETOOLS OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_TRADE OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_VK OFF CACHE BOOL "" FORCE )
set ( MAGNUM_WITH_SDL2APPLICATION ON CACHE BOOL "" FORCE )
add_subdirectory ( third-party/magnum EXCLUDE_FROM_ALL )
2021-06-11 19:24:52 +02:00
2023-08-27 22:31:54 +02:00
set ( IMGUI_DIR ${ CMAKE_CURRENT_SOURCE_DIR } /third-party/imgui )
set ( MAGNUM_WITH_IMGUI ON CACHE BOOL "" FORCE )
add_subdirectory ( third-party/magnum-integration EXCLUDE_FROM_ALL )
2021-06-11 19:24:52 +02:00
2023-08-27 22:31:54 +02:00
set ( ENABLE_COMMONCRYPTO OFF CACHE BOOL "" FORCE )
set ( ENABLE_GNUTLS OFF CACHE BOOL "" FORCE )
set ( ENABLE_MBEDTLS OFF CACHE BOOL "" FORCE )
set ( ENABLE_OPENSSL OFF CACHE BOOL "" FORCE )
set ( ENABLE_WINDOWS_CRYPTO OFF CACHE BOOL "" FORCE )
set ( ENABLE_BZIP2 OFF CACHE BOOL "" FORCE )
set ( ENABLE_LZMA OFF CACHE BOOL "" FORCE )
set ( ENABLE_ZSTD OFF CACHE BOOL "" FORCE )
set ( BUILD_TOOLS OFF CACHE BOOL "" FORCE )
set ( BUILD_REGRESS OFF CACHE BOOL "" FORCE )
set ( BUILD_EXAMPLES OFF CACHE BOOL "" FORCE )
set ( BUILD_DOC OFF CACHE BOOL "" FORCE )
add_subdirectory ( third-party/libzip EXCLUDE_FROM_ALL )
set ( VERBOSE OFF CACHE BOOL "" FORCE )
set ( BUILD_TEST_APP OFF CACHE BOOL "" FORCE )
set ( EFSW_INSTALL OFF CACHE BOOL "" FORCE )
add_subdirectory ( third-party/efsw EXCLUDE_FROM_ALL )
set ( BUILD_CURL_EXE OFF CACHE BOOL "" FORCE )
set ( ENABLE_UNICODE ON CACHE BOOL "" FORCE )
set ( ENABLE_INET_PTON OFF CACHE BOOL "" FORCE )
set ( ENABLE_DEBUG OFF CACHE BOOL "" FORCE )
set ( ENABLE_THREADED_RESOLVER OFF CACHE BOOL "" FORCE )
set ( HTTP_ONLY ON CACHE BOOL "" FORCE )
set ( USE_LIBIDN2 OFF CACHE BOOL "" FORCE )
set ( USE_WIN32_IDN ON CACHE BOOL "" FORCE )
set ( CURL_USE_LIBPSL OFF CACHE BOOL "" FORCE )
set ( CURL_STATIC_CRT OFF CACHE BOOL "" FORCE )
set ( CURL_USE_SCHANNEL ON CACHE BOOL "" FORCE )
set ( CURL_USE_LIBSSH2 OFF CACHE BOOL "" FORCE ) # For some reason, even when HTTP_ONLY is set to ON, libcurl will try to link to libssh2.
add_subdirectory ( third-party/curl EXCLUDE_FROM_ALL )
2023-08-28 13:10:41 +02:00
endif ( NOT SAVETOOL_USE_SYSTEM_LIBS )
2021-07-22 11:36:37 +02:00
2021-06-11 19:24:52 +02:00
add_subdirectory ( src )