mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Use the `TARGETS` form of `install` to avoid having to spell out the location and file name to install. Additionally, setup the installation rules to work better for Windows by listing install locations for the archive (static library) form (which includes the import library on Windows), library form (which is the Unix library), and the runtime component (the .dll on Windows).
61 lines
2.4 KiB
CMake
61 lines
2.4 KiB
CMake
include(SwiftWindowsSupport)
|
|
swift_swap_compiler_if_needed("SwiftSyntaxParser")
|
|
|
|
# Use an 'internal' name, this is primarily intended for SwiftSyntax to import.
|
|
set(SYNTAX_PARSER_LIB_NAME "_InternalSwiftSyntaxParser")
|
|
|
|
set(LLVM_EXPORTED_SYMBOL_FILE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/libSwiftSyntaxParser.exports)
|
|
|
|
add_swift_host_library(libSwiftSyntaxParser SHARED
|
|
c-include-check.c
|
|
libSwiftSyntaxParser.cpp)
|
|
if(NOT SWIFT_BUILT_STANDALONE AND NOT CMAKE_C_COMPILER_ID MATCHES Clang)
|
|
add_dependencies(libSwiftSyntaxParser clang)
|
|
endif()
|
|
target_link_libraries(libSwiftSyntaxParser PRIVATE
|
|
swiftParse)
|
|
set_target_properties(libSwiftSyntaxParser
|
|
PROPERTIES
|
|
OUTPUT_NAME ${SYNTAX_PARSER_LIB_NAME})
|
|
|
|
add_llvm_symbol_exports(libSwiftSyntaxParser ${LLVM_EXPORTED_SYMBOL_FILE})
|
|
|
|
# Adds -dead_strip option
|
|
add_link_opts(libSwiftSyntaxParser)
|
|
|
|
if (SWIFT_LIBPARSER_VER)
|
|
set(SWIFTSYNTAX_PARSER_VERSION_STRING "${SWIFT_LIBPARSER_VER}")
|
|
else()
|
|
set(SWIFTSYNTAX_PARSER_VERSION_STRING "${SWIFT_COMPILER_VERSION}")
|
|
endif()
|
|
|
|
if(SWIFTSYNTAX_PARSER_VERSION_STRING)
|
|
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
|
set(LIBPARSER_LINK_FLAGS " -Wl,-compatibility_version -Wl,1")
|
|
set(LIBPARSER_LINK_FLAGS "${LIBPARSER_LINK_FLAGS} -Wl,-current_version -Wl,${SWIFTSYNTAX_PARSER_VERSION_STRING}")
|
|
set_property(TARGET libSwiftSyntaxParser APPEND_STRING PROPERTY
|
|
LINK_FLAGS ${LIBPARSER_LINK_FLAGS})
|
|
else()
|
|
set_target_properties(libSwiftSyntaxParser
|
|
PROPERTIES
|
|
VERSION ${SWIFTSYNTAX_PARSER_VERSION_STRING})
|
|
endif()
|
|
endif()
|
|
|
|
set_property(TARGET libSwiftSyntaxParser APPEND_STRING PROPERTY
|
|
COMPILE_FLAGS " -fblocks")
|
|
if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
|
target_link_libraries(libSwiftSyntaxParser PRIVATE
|
|
BlocksRuntime)
|
|
endif()
|
|
|
|
add_dependencies(parser-lib libSwiftSyntaxParser)
|
|
swift_install_in_component(TARGETS libSwiftSyntaxParser
|
|
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}" COMPONENT parser-lib
|
|
LIBRARY DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}" COMPONENT parser-lib
|
|
RUNTIME DESTINATION "bin" COMPONENT parser-lib)
|
|
swift_install_in_component(DIRECTORY "${SWIFT_MAIN_INCLUDE_DIR}/swift-c/SyntaxParser/"
|
|
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${SYNTAX_PARSER_LIB_NAME}"
|
|
COMPONENT parser-lib)
|