|
| 1 | +commit 769723aee2540aaff8951ac432a1babed358aa71 |
| 2 | +Date: 2025-04-01 22:47:45 +0200 |
| 3 | + |
| 4 | +diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt |
| 5 | +index 347d41c0..f0890534 100644 |
| 6 | +--- a/build/cmake/CMakeLists.txt |
| 7 | ++++ b/build/cmake/CMakeLists.txt |
| 8 | +@@ -37,7 +37,6 @@ project(zstd |
| 9 | + VERSION "${ZSTD_FULL_VERSION}" |
| 10 | + LANGUAGES C # Main library is in C |
| 11 | + ASM # And ASM |
| 12 | +- CXX # Testing contributed code also utilizes CXX |
| 13 | + ) |
| 14 | + |
| 15 | + message(STATUS "ZSTD VERSION: ${zstd_VERSION}") |
| 16 | +@@ -54,12 +53,6 @@ endif() |
| 17 | + |
| 18 | + include(GNUInstallDirs) |
| 19 | + |
| 20 | +-#----------------------------------------------------------------------------- |
| 21 | +-# Add extra compilation flags |
| 22 | +-#----------------------------------------------------------------------------- |
| 23 | +-include(AddZstdCompilationFlags) |
| 24 | +-ADD_ZSTD_COMPILATION_FLAGS() |
| 25 | +- |
| 26 | + # Always hide XXHash symbols |
| 27 | + add_definitions(-DXXH_NAMESPACE=ZSTD_) |
| 28 | + |
| 29 | +@@ -123,6 +116,19 @@ if (MSVC) |
| 30 | + option(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF) |
| 31 | + endif () |
| 32 | + |
| 33 | ++# Enable C++ support for testing. |
| 34 | ++set(ZSTD_ENABLE_CXX ${ZSTD_BUILD_TESTS}) |
| 35 | ++ |
| 36 | ++if(ZSTD_ENABLE_CXX) |
| 37 | ++ enable_language(CXX) |
| 38 | ++endif() |
| 39 | ++ |
| 40 | ++#----------------------------------------------------------------------------- |
| 41 | ++# Add extra compilation flags |
| 42 | ++#----------------------------------------------------------------------------- |
| 43 | ++include(AddZstdCompilationFlags) |
| 44 | ++ADD_ZSTD_COMPILATION_FLAGS(ON ZSTD_ENABLE_CXX ON) # C CXX LD |
| 45 | ++ |
| 46 | + #----------------------------------------------------------------------------- |
| 47 | + # External dependencies |
| 48 | + #----------------------------------------------------------------------------- |
| 49 | +diff --git a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake |
| 50 | +index 5f381c65..25231b5e 100644 |
| 51 | +--- a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake |
| 52 | ++++ b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake |
| 53 | +@@ -49,7 +49,7 @@ function(EnableCompilerFlag _flag _C _CXX _LD) |
| 54 | + endif () |
| 55 | + endfunction() |
| 56 | + |
| 57 | +-macro(ADD_ZSTD_COMPILATION_FLAGS) |
| 58 | ++macro(ADD_ZSTD_COMPILATION_FLAGS _C _CXX _LD) |
| 59 | + # We set ZSTD_HAS_NOEXECSTACK if we are certain we've set all the required |
| 60 | + # compiler flags to mark the stack as non-executable. |
| 61 | + set(ZSTD_HAS_NOEXECSTACK false) |
| 62 | +@@ -63,26 +63,26 @@ macro(ADD_ZSTD_COMPILATION_FLAGS) |
| 63 | + # EnableCompilerFlag("-std=c99" true false) # Set C compilation to c99 standard |
| 64 | + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC) |
| 65 | + # clang-cl normally maps -Wall to -Weverything. |
| 66 | +- EnableCompilerFlag("/clang:-Wall" true true false) |
| 67 | ++ EnableCompilerFlag("/clang:-Wall" _C _CXX false) |
| 68 | + else () |
| 69 | +- EnableCompilerFlag("-Wall" true true false) |
| 70 | ++ EnableCompilerFlag("-Wall" _C _CXX false) |
| 71 | + endif () |
| 72 | +- EnableCompilerFlag("-Wextra" true true false) |
| 73 | +- EnableCompilerFlag("-Wundef" true true false) |
| 74 | +- EnableCompilerFlag("-Wshadow" true true false) |
| 75 | +- EnableCompilerFlag("-Wcast-align" true true false) |
| 76 | +- EnableCompilerFlag("-Wcast-qual" true true false) |
| 77 | +- EnableCompilerFlag("-Wstrict-prototypes" true false false) |
| 78 | ++ EnableCompilerFlag("-Wextra" _C _CXX false) |
| 79 | ++ EnableCompilerFlag("-Wundef" _C _CXX false) |
| 80 | ++ EnableCompilerFlag("-Wshadow" _C _CXX false) |
| 81 | ++ EnableCompilerFlag("-Wcast-align" _C _CXX false) |
| 82 | ++ EnableCompilerFlag("-Wcast-qual" _C _CXX false) |
| 83 | ++ EnableCompilerFlag("-Wstrict-prototypes" _C false false) |
| 84 | + # Enable asserts in Debug mode |
| 85 | + if (CMAKE_BUILD_TYPE MATCHES "Debug") |
| 86 | +- EnableCompilerFlag("-DDEBUGLEVEL=1" true true false) |
| 87 | ++ EnableCompilerFlag("-DDEBUGLEVEL=1" _C _CXX false) |
| 88 | + endif () |
| 89 | + # Add noexecstack flags |
| 90 | + # LDFLAGS |
| 91 | +- EnableCompilerFlag("-Wl,-z,noexecstack" false false true) |
| 92 | ++ EnableCompilerFlag("-Wl,-z,noexecstack" false false _LD) |
| 93 | + # CFLAGS & CXXFLAGS |
| 94 | +- EnableCompilerFlag("-Qunused-arguments" true true false) |
| 95 | +- EnableCompilerFlag("-Wa,--noexecstack" true true false) |
| 96 | ++ EnableCompilerFlag("-Qunused-arguments" _C _CXX false) |
| 97 | ++ EnableCompilerFlag("-Wa,--noexecstack" _C _CXX false) |
| 98 | + # NOTE: Using 3 nested ifs because the variables are sometimes |
| 99 | + # empty if the condition is false, and sometimes equal to false. |
| 100 | + # This implicitly converts them to truthy values. There may be |
| 101 | +@@ -99,15 +99,15 @@ macro(ADD_ZSTD_COMPILATION_FLAGS) |
| 102 | + |
| 103 | + set(ACTIVATE_MULTITHREADED_COMPILATION "ON" CACHE BOOL "activate multi-threaded compilation (/MP flag)") |
| 104 | + if (CMAKE_GENERATOR MATCHES "Visual Studio" AND ACTIVATE_MULTITHREADED_COMPILATION) |
| 105 | +- EnableCompilerFlag("/MP" true true false) |
| 106 | ++ EnableCompilerFlag("/MP" _C _CXX false) |
| 107 | + endif () |
| 108 | + |
| 109 | + # UNICODE SUPPORT |
| 110 | +- EnableCompilerFlag("/D_UNICODE" true true false) |
| 111 | +- EnableCompilerFlag("/DUNICODE" true true false) |
| 112 | ++ EnableCompilerFlag("/D_UNICODE" _C _CXX false) |
| 113 | ++ EnableCompilerFlag("/DUNICODE" _C _CXX false) |
| 114 | + # Enable asserts in Debug mode |
| 115 | + if (CMAKE_BUILD_TYPE MATCHES "Debug") |
| 116 | +- EnableCompilerFlag("/DDEBUGLEVEL=1" true true false) |
| 117 | ++ EnableCompilerFlag("/DDEBUGLEVEL=1" _C _CXX false) |
| 118 | + endif () |
| 119 | + endif () |
| 120 | + |
0 commit comments