Skip to content

Commit 94cbc38

Browse files
committed
Attempt to use CMAKE_DEPENDENT_OPTION
1 parent 4cc7b41 commit 94cbc38

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

llvm/CMakeLists.txt

+19-15
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
cmake_minimum_required(VERSION 3.20.0)
44

5+
include(CMakeDependentOption)
6+
57
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
68
include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
79
NO_POLICY_SCOPE)
@@ -839,34 +841,36 @@ endif()
839841

840842
if(MSVC)
841843
option(LLVM_BUILD_LLVM_C_DYLIB "Build LLVM-C.dll (Windows only)" ON)
842-
if(NOT LLVM_BUILD_LLVM_DYLIB_VIS)
843-
# Set this variable to OFF here so it can't be set with a command-line
844-
# argument.
845-
set (LLVM_LINK_LLVM_DYLIB OFF)
846-
endif()
847844
if (BUILD_SHARED_LIBS)
848845
message(FATAL_ERROR "BUILD_SHARED_LIBS options is not supported on Windows.")
849846
endif()
850847
else()
851848
option(LLVM_BUILD_LLVM_C_DYLIB "Build libllvm-c re-export library (Darwin only)" OFF)
852849
endif()
853850

851+
set(CAN_BUILD_LLVM_DYLIB Off)
854852
if(NOT MSVC OR LLVM_BUILD_LLVM_DYLIB_VIS)
855-
option(LLVM_LINK_LLVM_DYLIB "Link tools against the libllvm dynamic library" OFF)
856-
set(LLVM_BUILD_LLVM_DYLIB_default OFF)
857-
if(LLVM_LINK_LLVM_DYLIB OR LLVM_BUILD_LLVM_C_DYLIB)
858-
set(LLVM_BUILD_LLVM_DYLIB_default ON)
859-
endif()
860-
option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" ${LLVM_BUILD_LLVM_DYLIB_default})
853+
set(CAN_BUILD_LLVM_DYLIB On)
854+
endif()
855+
856+
CMAKE_DEPENDENT_OPTION(LLVM_LINK_LLVM_DYLIB "Link tools against the libllvm dynamic library" OFF
857+
"CAN_BUILD_LLVM_DYLIB" OFF)
858+
859+
set(LLVM_BUILD_LLVM_DYLIB_default OFF)
860+
if(LLVM_LINK_LLVM_DYLIB OR LLVM_BUILD_LLVM_C_DYLIB)
861+
set(LLVM_BUILD_LLVM_DYLIB_default ON)
861862
endif()
863+
CMAKE_DEPENDENT_OPTION(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" ${LLVM_BUILD_LLVM_DYLIB_default}
864+
"CAN_BUILD_LLVM_DYLIB" OFF)
865+
866+
CMAKE_DEPENDENT_OPTION(LLVM_DYLIB_EXPORT_INLINES "Force inline members of classes to be DLL exported when
867+
building with clang-cl so the libllvm DLL is compatible with MSVC"
868+
OFF
869+
"MSVC;LLVM_BUILD_LLVM_DYLIB_VIS" OFF)
862870

863871
# Build llvm dynamic library with explicit symbol visibility on windows and default hidden symbol visibility on Linux
864872
if(LLVM_BUILD_LLVM_DYLIB_VIS)
865873
set(LLVM_BUILD_LLVM_DYLIB ON)
866-
if(MSVC)
867-
option(LLVM_DYLIB_EXPORT_INLINES "Force inline members of class to be dll exported when
868-
building with clang-cl so the libllvm dll is compatible with MSVC" OFF)
869-
endif()
870874
endif()
871875

872876
if (LLVM_LINK_LLVM_DYLIB AND BUILD_SHARED_LIBS)

0 commit comments

Comments
 (0)