blob: 0183361ecaa4bbe96ea5c06bf23a28eeaa27c80f [file] [log] [blame]
set(EXPORTED_SYMBOL_FILE "${SOURCEKITD_SOURCE_DIR}/bin/sourcekitd.exports")
option(SOURCEKITD_BUILD_STATIC_INPROC
"Build sourcekitdInProc as a static library (in addition to a shared one)" OFF)
set(sourcekitdInProc_args
sourcekitdInProc.cpp
DEPENDS SourceKitSwiftLang sourcekitdAPI
LLVM_COMPONENT_DEPENDS support coverage
)
if (SOURCEKIT_INSTALLING_INPROC)
add_sourcekit_framework(sourcekitdInProc
${SOURCEKITD_SOURCE_DIR}/include/sourcekitd/sourcekitd.h
${sourcekitdInProc_args}
MODULEMAP module.modulemap
INSTALL_IN_COMPONENT sourcekit-inproc
)
set_property(TARGET sourcekitdInProc APPEND_STRING PROPERTY LINK_FLAGS " -fapplication-extension")
else()
add_sourcekit_library(sourcekitdInProc
${sourcekitdInProc_args}
INSTALL_IN_COMPONENT sourcekit-inproc
SHARED
)
endif()
# While it is possible to build this as a static library,
# to get the runtime paths correct, it must be linked into a binary
# that is in the same directory as the swift library directory.
if (SOURCEKITD_BUILD_STATIC_INPROC)
add_sourcekit_library(sourcekitdInProc_Static
${sourcekitdInProc_args}
)
endif()
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
target_link_libraries(sourcekitdInProc PUBLIC BlocksRuntime)
endif()
if (SOURCEKIT_BUILT_STANDALONE)
# Create the symlinks necessary to find the swift runtime.
add_custom_command(TARGET sourcekitdInProc PRE_BUILD
COMMAND ln "-fhs" "${PATH_TO_SWIFT_BUILD}/lib/swift" "${SOURCEKIT_BINARY_DIR}/lib")
endif()
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
if(SWIFT_COMPILER_VERSION)
set_property(TARGET sourcekitdInProc APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,-current_version -Wl,${SWIFT_COMPILER_VERSION}")
endif()
endif()