Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cmake] No depends on intrinsics_gen in standalone #5112

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions cmake/modules/AddSwift.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -851,7 +851,7 @@ function(_add_swift_library_single target name)
${SWIFTLIB_SINGLE_DEPENDS}
${gyb_dependency_targets}
"${swift_object_dependency_target}"
${LLVM_COMMON_DEPENDS})
${SWIFT_COMMON_DEPENDS})

# HACK: On some systems or build directory setups, CMake will not find static
# archives of Clang libraries in the Clang build directory, and it will pass
Expand Down Expand Up @@ -1728,7 +1728,7 @@ function(_add_swift_executable_single name)
TARGETS "${name}"
DEPENDS
${dependency_target}
${LLVM_COMMON_DEPENDS}
${SWIFT_COMMON_DEPENDS}
${SWIFTEXE_SINGLE_DEPENDS}
${SWIFTEXE_SINGLE_LINK_FAT_LIBRARIES_TARGETS})
llvm_update_compile_flags("${name}")
Expand Down
6 changes: 6 additions & 0 deletions cmake/modules/AddSwiftTableGen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@ endmacro()
# This needs to be a macro since add_public_tablegen_target (which is a
# function) needs to set variables in its parent scope.
macro(swift_add_public_tablegen_target target)
# FIXME: LLVM's add_public_tablegen_target should take a DEPENDS argument,
# allowing dependencies to be set without modifying
# LLVM_COMMON_DEPENDS.
set(_original_llvm_common_depends ${LLVM_COMMON_DEPENDS})
set(LLVM_COMMON_DEPENDS ${SWIFT_COMMON_DEPENDS})
add_public_tablegen_target(${target})
set(LLVM_COMMON_DEPENDS ${_original_llvm_common_depends})
endmacro()
6 changes: 6 additions & 0 deletions cmake/modules/AddSwiftUnittests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ set_target_properties(SwiftUnitTests PROPERTIES FOLDER "Tests")
function(add_swift_unittest test_dirname)
# *NOTE* Even though "add_unittest" does not have llvm in its name, it is a
# function defined by AddLLVM.cmake.
# FIXME: AddLLVM.cmake's add_unittest function should take a DEPENDS
# argument, allowing dependencies to be set without modifying
# LLVM_COMMON_DEPENDS.
set(_original_llvm_common_depends ${LLVM_COMMON_DEPENDS})
set(LLVM_COMMON_DEPENDS ${SWIFT_COMMON_DEPENDS})
add_unittest(SwiftUnitTests ${test_dirname} ${ARGN})
set(LLVM_COMMON_DEPENDS ${_original_llvm_common_depends})

# TODO: _add_variant_c_compile_link_flags and these tests should share some
# sort of logic.
Expand Down
7 changes: 7 additions & 0 deletions cmake/modules/SwiftSharedCMakeConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ macro(swift_common_standalone_build_config_llvm product is_cross_compiling)
include(AddSwiftTableGen) # This imports TableGen from LLVM.
include(HandleLLVMOptions)

# The intrinsics_gen dependency is not available for Swift builds outside of
# the LLVM source tree, so remove it.
set(SWIFT_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS})
list(REMOVE_ITEM SWIFT_COMMON_DEPENDS intrinsics_gen)

# HACK: this ugly tweaking is to prevent the propagation of the flag from LLVM
# into swift. The use of this flag pollutes all targets, and we are not able
# to remove it on a per-target basis which breaks cross-compilation.
Expand Down Expand Up @@ -262,6 +267,8 @@ macro(swift_common_unified_build_config product)
if(CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-nested-anon-types")
endif()

set(SWIFT_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS})
endmacro()

# Common cmake project config for additional warnings.
Expand Down
28 changes: 17 additions & 11 deletions tools/SourceKit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,9 @@ macro(add_sourcekit_library name)
BINARY_DIR ${SOURCEKIT_RUNTIME_OUTPUT_INTDIR}
LIBRARY_DIR ${SOURCEKIT_LIBRARY_OUTPUT_INTDIR})

if(LLVM_COMMON_DEPENDS)
add_dependencies(${name} ${LLVM_COMMON_DEPENDS})
endif(LLVM_COMMON_DEPENDS)
if(SWIFT_COMMON_DEPENDS)
add_dependencies(${name} ${SWIFT_COMMON_DEPENDS})
endif()

set(prefixed_link_libraries)
foreach(dep ${SOURCEKITLIB_DEPENDS})
Expand Down Expand Up @@ -236,8 +236,8 @@ macro(add_sourcekit_executable name)
LIBRARY_DIR ${SOURCEKIT_LIBRARY_OUTPUT_INTDIR})

# Add appropriate dependencies
if(LLVM_COMMON_DEPENDS)
add_dependencies(${name} ${LLVM_COMMON_DEPENDS})
if(SWIFT_COMMON_DEPENDS)
add_dependencies(${name} ${SWIFT_COMMON_DEPENDS})
endif()

target_link_libraries(${name} ${SOURCEKITEXE_DEPENDS})
Expand Down Expand Up @@ -308,9 +308,9 @@ macro(add_sourcekit_framework name)
set_source_files_properties(${headers} PROPERTIES HEADER_FILE_ONLY ON)
endif(MSVC_IDE OR XCODE)

if(LLVM_COMMON_DEPENDS)
add_dependencies(${name} ${LLVM_COMMON_DEPENDS})
endif(LLVM_COMMON_DEPENDS)
if(SWIFT_COMMON_DEPENDS)
add_dependencies(${name} ${SWIFT_COMMON_DEPENDS})
endif()

target_link_libraries(${name} PRIVATE ${SOURCEKITFW_DEPENDS})
swift_common_llvm_config(${name} ${SOURCEKITFW_LLVM_COMPONENT_DEPENDS})
Expand Down Expand Up @@ -411,7 +411,13 @@ macro(add_sourcekit_xpc_service name framework_target)
"${CMAKE_CURRENT_BINARY_DIR}/${name}.Info.plist" "${xpc_contents_dir}/Info.plist")
list(APPEND srcs "${xpc_contents_dir}/Info.plist")

# FIXME: LLVM's add_llvm_executable should take a DEPENDS argument, allowing
# dependencies to be set without modifying LLVM_COMMON_DEPENDS.
set(_original_llvm_common_depends ${LLVM_COMMON_DEPENDS})
set(LLVM_COMMON_DEPENDS ${SWIFT_COMMON_DEPENDS})
add_llvm_executable(${name} ${srcs})
set(LLVM_COMMON_DEPENDS ${_original_llvm_common_depends})

set_target_properties(${name} PROPERTIES FOLDER "XPC Services")
set_target_properties(${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${xpc_bin_dir}")

Expand All @@ -420,9 +426,9 @@ macro(add_sourcekit_xpc_service name framework_target)
LIBRARY_DIR "${xpc_bin_dir}")

# Add appropriate dependencies
if(LLVM_COMMON_DEPENDS)
add_dependencies(${name} ${LLVM_COMMON_DEPENDS})
endif(LLVM_COMMON_DEPENDS)
if(SWIFT_COMMON_DEPENDS)
add_dependencies(${name} ${SWIFT_COMMON_DEPENDS})
endif(SWIFT_COMMON_DEPENDS)

target_link_libraries(${name} ${SOURCEKITXPC_DEPENDS})
swift_common_llvm_config(${name} ${SOURCEKITXPC_LLVM_COMPONENT_DEPENDS})
Expand Down