blob: 8ad649911761673b4917e0f41367f83882b2488b [file] [log] [blame]
include(CheckIncludeFiles)
set(SOURCES
IndexStore.cpp
ADDITIONAL_HEADERS
../../include/indexstore/indexstore.h
../../include/indexstore/IndexStoreCXX.h
)
set(LIBS
clangDirectoryWatcher
clangIndex
)
set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/IndexStore.exports)
set(ENABLE_SHARED SHARED)
if(WIN32)
set(output_name "libIndexStore")
else()
set(output_name "IndexStore")
endif()
# FIXME: needs to be ported to non-Apple platforms.
if(APPLE)
add_clang_library(IndexStore ${ENABLE_SHARED} ${ENABLE_STATIC}
OUTPUT_NAME ${output_name}
${SOURCES}
LINK_LIBS
${LIBS}
LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
Core
Support
)
set(INDEXSTORE_LIBRARY_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")
if(ENABLE_SHARED)
if(WIN32)
set_target_properties(IndexStore
PROPERTIES
VERSION ${INDEXSTORE_LIBRARY_VERSION}
DEFINE_SYMBOL _CINDEX_LIB_)
elseif(APPLE)
set(INDEXSTORE_LINK_FLAGS " -Wl,-compatibility_version -Wl,1")
set(INDEXSTORE_LINK_FLAGS "${INDEXSTORE_LINK_FLAGS} -Wl,-current_version -Wl,${INDEXSTORE_LIBRARY_VERSION}")
check_include_files("CoreServices/CoreServices.h" HAVE_CORESERVICES_H)
if(HAVE_CORESERVICES_H)
set(INDEXSTORE_LINK_FLAGS "${INDEXSTORE_LINK_FLAGS} -framework CoreServices")
endif()
set_property(TARGET IndexStore APPEND_STRING PROPERTY
LINK_FLAGS ${INDEXSTORE_LINK_FLAGS})
else()
set_target_properties(IndexStore
PROPERTIES
VERSION ${INDEXSTORE_LIBRARY_VERSION}
DEFINE_SYMBOL _CINDEX_LIB_)
endif()
endif()
if (LLVM_INSTALL_TOOLCHAIN_ONLY)
install(TARGETS IndexStore
COMPONENT IndexStore
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
RUNTIME DESTINATION bin)
if (NOT CMAKE_CONFIGURATION_TYPES)
add_custom_target(install-IndexStore
DEPENDS IndexStore
COMMAND "${CMAKE_COMMAND}"
-DCMAKE_INSTALL_COMPONENT=IndexStore
-P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
endif()
endif()
set(INDEXSTORE_HEADERS_INSTALL_DESTINATION "local/include")
install(DIRECTORY ../../include/indexstore
COMPONENT IndexStore
DESTINATION "${INDEXSTORE_HEADERS_INSTALL_DESTINATION}"
FILES_MATCHING
PATTERN "*.h"
PATTERN ".svn" EXCLUDE
)
endif()