| 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() |