mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-28 16:11:29 +00:00
[CMake] Default to static linking for subprojects.
Pass plugins introduced in D61446 do not support dynamic linking on Windows, hence the option LLVM_${name_upper}_LINK_INTO_TOOLS can only work being set to "ON". Currently, it defaults to "OFF" such that such plugins are inoperable by default on Windows. Change the default for subprojects to follow LLVM_ENABLE_PROJECTS. Reviewed By: serge-sans-paille, MaskRay Differential Revision: https://reviews.llvm.org/D72372
This commit is contained in:
parent
3d65dd1e66
commit
6369b9bf31
@ -859,14 +859,25 @@ endmacro(add_llvm_executable name)
|
|||||||
#
|
#
|
||||||
# If NO_MODULE is specified, when option LLVM_${name_upper}_LINK_INTO_TOOLS is set to OFF,
|
# If NO_MODULE is specified, when option LLVM_${name_upper}_LINK_INTO_TOOLS is set to OFF,
|
||||||
# only an object library is built, and no module is built. This is specific to the Polly use case.
|
# only an object library is built, and no module is built. This is specific to the Polly use case.
|
||||||
|
#
|
||||||
|
# The SUBPROJECT argument contains the LLVM project the plugin belongs
|
||||||
|
# to. If set, the plugin will link statically by default it if the
|
||||||
|
# project was enabled.
|
||||||
function(add_llvm_pass_plugin name)
|
function(add_llvm_pass_plugin name)
|
||||||
cmake_parse_arguments(ARG
|
cmake_parse_arguments(ARG
|
||||||
"NO_MODULE" "" ""
|
"NO_MODULE" "SUBPROJECT" ""
|
||||||
${ARGN})
|
${ARGN})
|
||||||
|
|
||||||
string(TOUPPER ${name} name_upper)
|
string(TOUPPER ${name} name_upper)
|
||||||
|
|
||||||
option(LLVM_${name_upper}_LINK_INTO_TOOLS "Statically link ${name} into tools (if available)" OFF)
|
# Enable the plugin by default if it was explicitly enabled by the user.
|
||||||
|
# Note: If was set to "all", LLVM's CMakeLists.txt replaces it with a
|
||||||
|
# list of all projects, counting as explicitly enabled.
|
||||||
|
set(link_into_tools_default OFF)
|
||||||
|
if (ARG_SUBPROJECT AND LLVM_TOOL_${name_upper}_BUILD)
|
||||||
|
set(link_into_tools_default ON)
|
||||||
|
endif()
|
||||||
|
option(LLVM_${name_upper}_LINK_INTO_TOOLS "Statically link ${name} into tools (if available)" ${link_into_tools_default})
|
||||||
|
|
||||||
if(LLVM_${name_upper}_LINK_INTO_TOOLS)
|
if(LLVM_${name_upper}_LINK_INTO_TOOLS)
|
||||||
list(REMOVE_ITEM ARG_UNPARSED_ARGUMENTS BUILDTREE_ONLY)
|
list(REMOVE_ITEM ARG_UNPARSED_ARGUMENTS BUILDTREE_ONLY)
|
||||||
|
@ -25,6 +25,7 @@ endif ()
|
|||||||
# the sources them to be recompiled for each of them.
|
# the sources them to be recompiled for each of them.
|
||||||
add_llvm_pass_plugin(Polly
|
add_llvm_pass_plugin(Polly
|
||||||
NO_MODULE
|
NO_MODULE
|
||||||
|
SUBPROJECT Polly
|
||||||
Analysis/DependenceInfo.cpp
|
Analysis/DependenceInfo.cpp
|
||||||
Analysis/PolyhedralInfo.cpp
|
Analysis/PolyhedralInfo.cpp
|
||||||
Analysis/ScopDetection.cpp
|
Analysis/ScopDetection.cpp
|
||||||
|
Loading…
Reference in New Issue
Block a user