Skip to content

Commit

Permalink
build: make LLVM_ENABLE_ZLIB a tri-bool for users
Browse files Browse the repository at this point in the history
Treat the flag `LLVM_ENABLE_ZLIB` as a tri-bool, `FORCE_ON` being `ON`,
and `ON` being an auto-detect.  This is needed as many of the builders
enable the flag without having zlib available.
  • Loading branch information
compnerd committed Jan 2, 2020
1 parent 68a235d commit e6c7ed6
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
2 changes: 1 addition & 1 deletion llvm/CMakeLists.txt
Expand Up @@ -347,7 +347,7 @@ option(LLVM_ENABLE_LIBPFM "Use libpfm for performance counters if available." ON

option(LLVM_ENABLE_THREADS "Use threads if available." ON)

option(LLVM_ENABLE_ZLIB "Use zlib for compression/decompression if available." ON)
set(LLVM_ENABLE_ZLIB "ON" CACHE STRING "Use zlib for compression/decompression if available. Can be ON, OFF, or FORCE_ON")

set(LLVM_Z3_INSTALL_DIR "" CACHE STRING "Install directory of the Z3 solver.")

Expand Down
20 changes: 15 additions & 5 deletions llvm/cmake/config-ix.cmake
Expand Up @@ -117,10 +117,6 @@ endif()
# Don't look for these libraries if we're using MSan, since uninstrumented third
# party code may call MSan interceptors like strlen, leading to false positives.
if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*")
if(LLVM_ENABLE_ZLIB)
find_package(ZLIB REQUIRED)
endif()

# Don't look for these libraries on Windows.
if (NOT PURE_WINDOWS)
# Skip libedit if using ASan as it contains memory leaks.
Expand Down Expand Up @@ -506,7 +502,21 @@ else( LLVM_ENABLE_THREADS )
endif()

if(LLVM_ENABLE_ZLIB)
find_package(ZLIB REQUIRED)
if(LLVM_ENABLE_ZLIB STREQUAL FORCE_ON)
find_package(ZLIB REQUIRED)
else()
find_package(ZLIB)
endif()

if(ZLIB_FOUND)
set(LLVM_ENABLE_ZLIB "YES" CACHE STRING
"Use zlib for compression/decompression if available. Can be ON, OFF, or FORCE_ON"
FORCE)
else()
set(LLVM_ENABLE_ZLIB "NO" CACHE STRING
"Use zlib for compression/decompression if available. Can be ON, OFF, or FORCE_ON"
FORCE)
endif()
endif()

if (LLVM_ENABLE_DOXYGEN)
Expand Down
5 changes: 4 additions & 1 deletion llvm/lib/Support/CMakeLists.txt
@@ -1,4 +1,7 @@
set(system_libs ${ZLIB_LIBRARY})
if(LLVM_ENABLE_ZLIB)
set(system_libs ${ZLIB_LIBRARY})
endif()

if( MSVC OR MINGW )
# libuuid required for FOLDERID_Profile usage in lib/Support/Windows/Path.inc.
# advapi32 required for CryptAcquireContextW in lib/Support/Windows/Path.inc.
Expand Down

0 comments on commit e6c7ed6

Please sign in to comment.