blob: e94b53110aa1043ecd9afbeb891acfb2ddf34872 [file] [log] [blame]
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)
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(SWIFT_NEED_EXPLICIT_LIBDISPATCH)
target_link_libraries(libSwiftSyntaxParser PRIVATE BlocksRuntime)
endif()
swift_install_in_component(parser-lib
FILES "${SWIFT_LIBRARY_OUTPUT_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${SYNTAX_PARSER_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}")
swift_install_in_component(parser-lib
DIRECTORY "${SWIFT_MAIN_INCLUDE_DIR}/swift-c/SyntaxParser/"
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift/${SYNTAX_PARSER_LIB_NAME}")