diff --git a/CMakeLists.txt b/CMakeLists.txt index 47f6ce9..d69cd1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,97 +23,103 @@ if(MINGW) set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) # This _shouldn't_ be needed, but, anything's possible... endif() -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) +option(SAVETOOL_USE_SYSTEM_LIBS "Use system-wide versions of the dependencies instead of the versions provided by submodules." OFF) -set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) -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) +if(SAVETOOL_USE_SYSTEM_LIBS) + # 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) -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) + 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) -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) + 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) -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) + 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) -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(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) -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(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) -set(BUILD_TESTING OFF CACHE BOOL "" FORCE) -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) + 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) +endif(SAVETOOL_USE_SYSTEM_LIBS) add_subdirectory(src)