aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Terrell <terrelln@fb.com>2024-03-18 09:28:06 -0700
committerNick Terrell <terrelln@fb.com>2024-03-18 09:31:22 -0700
commit42b02f5185393e5f71abaa4c532684de3569be85 (patch)
treeac49b98022409004433b2c1b4f54cdc7f46030c2
parentcd4dba74dea8a92f9e33d72fcb5b60224bc4e6c3 (diff)
downloadzstd-42b02f5185393e5f71abaa4c532684de3569be85.tar.gz
[cmake] Emit warnings for contradictory build settings
Document that the `ZSTD_BUILD_{SHARED,STATIC}` take precedence over `BUILD_SHARED_LIBS` when exactly one is ON. Thanks to @teo-tsirpanis for pointing out the potentially confusing behavior.
-rw-r--r--build/cmake/lib/CMakeLists.txt6
1 files changed, 6 insertions, 0 deletions
diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt
index eb21b8b3..5d514ccb 100644
--- a/build/cmake/lib/CMakeLists.txt
+++ b/build/cmake/lib/CMakeLists.txt
@@ -152,11 +152,17 @@ if (ZSTD_BUILD_STATIC)
add_definition(libzstd_static ZDICTLIB_STATIC_API)
endif ()
if (ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC)
+ if (NOT BUILD_SHARED_LIBS)
+ message(WARNING "BUILD_SHARED_LIBS is OFF, but ZSTD_BUILD_SHARED is ON and ZSTD_BUILD_STATIC is OFF, which takes precedence, so libzstd is a shared library")
+ endif ()
add_library(libzstd INTERFACE)
target_link_libraries(libzstd INTERFACE libzstd_shared)
list(APPEND library_targets libzstd)
endif ()
if (ZSTD_BUILD_STATIC AND NOT ZSTD_BUILD_SHARED)
+ if (BUILD_SHARED_LIBS)
+ message(WARNING "BUILD_SHARED_LIBS is ON, but ZSTD_BUILD_SHARED is OFF and ZSTD_BUILD_STATIC is ON, which takes precedence, is set so libzstd is a static library")
+ endif ()
add_library(libzstd INTERFACE)
target_link_libraries(libzstd INTERFACE libzstd_static)
list(APPEND library_targets libzstd)