diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c095f3f..5bdcd891 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,7 @@ message(STATUS "Version: ${GEODE_VERSION}, tag: ${GEODE_VERSION_TAG} (type: ${GE project(geode-sdk VERSION ${GEODE_VERSION} LANGUAGES CXX C) +# Change debug format to embedded if (MSVC) string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") @@ -100,8 +101,17 @@ endif() if (PROJECT_IS_TOP_LEVEL AND NOT GEODE_BUILDING_DOCS) set(TULIP_LINK_SOURCE ON) endif() +set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "" FORCE) CPMAddPackage("gh:geode-sdk/TulipHook#4369d05") +set(CMAKE_WARN_DEPRECATED ON CACHE BOOL "" FORCE) +# Silence warnings from dependencies +include(CheckCXXCompilerFlag) +check_cxx_compiler_flag(-Wno-everything SUPPORTS_W_NO_EVERYTHING) +if (SUPPORTS_W_NO_EVERYTHING) + target_compile_options(capstone-static PRIVATE -Wno-everything) + target_compile_options(keystone PRIVATE -Wno-everything) +endif() target_sources(${PROJECT_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/entry.cpp) diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt index e34f2e36..33ed7440 100644 --- a/loader/CMakeLists.txt +++ b/loader/CMakeLists.txt @@ -167,7 +167,22 @@ if (NOT GEODE_BUILDING_DOCS) # Zip support (needed for in-memory streams, which zlib's minizip doesn't support) set(MZ_LZMA Off CACHE INTERNAL "Enables LZMA & XZ compression") set(MZ_ZSTD Off CACHE INTERNAL "") - CPMAddPackage("gh:zlib-ng/minizip-ng#cee6d8c") + set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "" FORCE) + CPMAddPackage( + GITHUB_REPOSITORY zlib-ng/minizip-ng + GIT_TAG cee6d8c + OPTIONS "CMAKE_POLICY_DEFAULT_CMP0048 OLD" + ) + set(CMAKE_WARN_DEPRECATED ON CACHE BOOL "" FORCE) + + # Silence warnings from dependencies + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag(-Wno-everything SUPPORTS_W_NO_EVERYTHING) + if (SUPPORTS_W_NO_EVERYTHING) + target_compile_options(md4c PRIVATE -Wno-everything) + target_compile_options(zlib PRIVATE -Wno-everything) + target_compile_options(zlibstatic PRIVATE -Wno-everything) + endif() # Regex support CPMAddPackage("gh:google/re2#954656f") @@ -179,6 +194,19 @@ endif() target_link_libraries(${PROJECT_NAME} z TulipHook geode-sdk mat-json) +if (MSVC) + # Disable outputting .exp file + include(CheckLinkerFlag) + check_linker_flag(CXX /NOEXP SUPPORTS_NOEXP) + if (SUPPORTS_NOEXP) + target_link_options(${PROJECT_NAME} PRIVATE /NOEXP) + endif() + + # Disable incremental link in CI builds + if (DEFINED ENV{GEODE_CI}) + target_link_options(${PROJECT_NAME} PRIVATE /INCREMENTAL:NO) + endif() +endif() # Use precompiled headers for faster builds if (NOT GEODE_DISABLE_PRECOMPILED_HEADERS) @@ -217,14 +245,6 @@ elseif (WIN32) if (MSVC) # disable warnings about CCNode::setID target_link_options(${PROJECT_NAME} PUBLIC /ignore:4217) - - # disable outputting .exp file - target_link_options(${PROJECT_NAME} PRIVATE /NOEXP) - - # disable incremental link in CI builds - if (DEFINED ENV{GEODE_CI}) - target_link_options(${PROJECT_NAME} PRIVATE /INCREMENTAL:NO) - endif() endif() endif() diff --git a/loader/launcher/windows/CMakeLists.txt b/loader/launcher/windows/CMakeLists.txt index 805c4c01..51cc3467 100644 --- a/loader/launcher/windows/CMakeLists.txt +++ b/loader/launcher/windows/CMakeLists.txt @@ -43,9 +43,17 @@ set_target_properties(Updater PROPERTIES target_link_libraries(Updater PUBLIC ghc_filesystem) if (MSVC) - target_link_options(fake-geode-loader PRIVATE /NOEXP /DEBUG:NONE) - target_link_options(ProxyLoader PRIVATE /NOIMPLIB /NOEXP /DEBUG:NONE) + include(CheckLinkerFlag) + check_linker_flag(CXX /NOEXP SUPPORTS_NOEXP) + if (SUPPORTS_NOEXP) + target_link_options(fake-geode-loader PRIVATE /NOEXP) + target_link_options(ProxyLoader PRIVATE /NOEXP) + endif() + + target_link_options(fake-geode-loader PRIVATE /DEBUG:NONE) + target_link_options(ProxyLoader PRIVATE /NOIMPLIB /DEBUG:NONE) target_link_options(Updater PRIVATE /DEBUG:NONE) + if (DEFINED ENV{GEODE_CI}) target_link_options(fake-geode-loader PRIVATE /INCREMENTAL:NO) target_link_options(ProxyLoader PRIVATE /INCREMENTAL:NO)