]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
[cmake] Emit warnings for contradictory build settings 3975/head
authorNick Terrell <terrelln@fb.com>
Mon, 18 Mar 2024 16:28:06 +0000 (09:28 -0700)
committerNick Terrell <terrelln@fb.com>
Mon, 18 Mar 2024 16:31:22 +0000 (09:31 -0700)
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.

build/cmake/lib/CMakeLists.txt

index eb21b8b3259fbb4292ed60617cccfd6239ab26d4..5d514ccb2e9fa81cc1e4481dc8e97c9dc65cc102 100644 (file)
@@ -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)