
A CMake change included in CMake 4.0 makes `AIX` into a variable
(similar to `APPLE`, etc.)
ff03db6657
However, `${CMAKE_SYSTEM_NAME}` unfortunately also expands exactly to
`AIX` and `if` auto-expands variable names in CMake. That means you get
a double expansion if you write:
`if (${CMAKE_SYSTEM_NAME} MATCHES "AIX")`
which becomes:
`if (AIX MATCHES "AIX")`
which is as if you wrote:
`if (ON MATCHES "AIX")`
You can prevent this by quoting the expansion of "${CMAKE_SYSTEM_NAME}",
due to policy
[CMP0054](https://cmake.org/cmake/help/latest/policy/CMP0054.html#policy:CMP0054)
which is on by default in 4.0+. Most of the LLVM CMake already does
this, but this PR fixes the remaining cases where we do not.
49 lines
1.4 KiB
CMake
49 lines
1.4 KiB
CMake
set(LLVM_TARGET_DEFINITIONS Options.td)
|
|
tablegen(LLVM Options.inc -gen-opt-parser-defs)
|
|
add_public_tablegen_target(LLDBOptionsTableGen)
|
|
|
|
if(APPLE)
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/lldb-Info.plist.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/lldb-Info.plist
|
|
)
|
|
# Inline info plist in binary (use target_link_options for this as soon as CMake 3.13 is available)
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_BINARY_DIR}/lldb-Info.plist")
|
|
endif()
|
|
|
|
if (UNIX AND "${CMAKE_SYSTEM_NAME}" MATCHES "AIX")
|
|
remove_definitions("-D_XOPEN_SOURCE=700")
|
|
add_definitions("-D_ALL_SOURCE")
|
|
endif()
|
|
|
|
add_lldb_tool(lldb
|
|
Driver.cpp
|
|
Platform.cpp
|
|
|
|
LINK_COMPONENTS
|
|
Option
|
|
Support
|
|
LINK_LIBS
|
|
liblldb
|
|
lldbHost
|
|
lldbUtility
|
|
)
|
|
|
|
add_dependencies(lldb
|
|
LLDBOptionsTableGen
|
|
${tablegen_deps}
|
|
)
|
|
|
|
if(LLDB_BUILD_FRAMEWORK)
|
|
# In the build-tree, we know the exact path to the framework directory.
|
|
# The installed framework can be in different locations.
|
|
lldb_setup_rpaths(lldb
|
|
BUILD_RPATH
|
|
"${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}"
|
|
INSTALL_RPATH
|
|
"@loader_path/../../../SharedFrameworks"
|
|
"@loader_path/../../System/Library/PrivateFrameworks"
|
|
"@loader_path/../../Library/PrivateFrameworks"
|
|
)
|
|
endif()
|