Files
SourcetrailDB/core/CMakeLists.txt
T
2021-01-25 20:31:45 +01:00

98 lines
2.5 KiB
CMake

cmake_minimum_required (VERSION 2.6)
set(TEST_CORE_TARGET_NAME "test_core")
set(GENERATED_INCLUDE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
set(GENERATED_VERSION_FILE "${GENERATED_INCLUDE_DIRECTORY}/version.h")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/version.h.in
${GENERATED_VERSION_FILE}
)
set(EXTERNAL_FILES
../external/cpp_sqlite/src/CppSQLite3.cpp
../external/json/include/json.hpp
../external/cpp_sqlite/include/CppSQLite3.h
)
set(EXTERNAL_C_FILES
../external/cpp_sqlite/src/sqlite3.c
../external/cpp_sqlite/include/sqlite3.h
)
set_source_files_properties(${EXTERNAL_FILES} PROPERTIES COMPILE_FLAGS "-w")
set_source_files_properties(${EXTERNAL_C_FILES} PROPERTIES COMPILE_FLAGS "-std=gnu89 -w")
set(LIB_SRC_FILES
src/DatabaseStorage.cpp
src/DefinitionKind.cpp
src/EdgeKind.cpp
src/ElementComponentKind.cpp
src/LocationKind.cpp
src/NameHierarchy.cpp
src/NodeKind.cpp
src/ReferenceKind.cpp
src/SourcetrailDBWriter.cpp
src/SymbolKind.cpp
src/utility.cpp
)
set(LIB_HDR_FILES
include/DatabaseStorage.h
include/DefinitionKind.h
include/EdgeKind.h
include/ElementComponentKind.h
include/LocationKind.h
include/NameHierarchy.h
include/NodeKind.h
include/ReferenceKind.h
include/SourceRange.h
include/SourcetrailDBWriter.h
include/SourcetrailException.h
include/StorageEdge.h
include/StorageElementComponent.h
include/StorageError.h
include/StorageFile.h
include/StorageLocalSymbol.h
include/StorageNode.h
include/StorageOccurrence.h
include/StorageSourceLocation.h
include/StorageSymbol.h
include/SymbolKind.h
include/utility.h
${GENERATED_VERSION_FILE}
)
add_library(${LIB_CORE_TARGET_NAME} STATIC ${LIB_SRC_FILES} ${LIB_HDR_FILES} ${EXTERNAL_FILES} ${EXTERNAL_C_FILES})
set_target_properties(${LIB_CORE_TARGET_NAME} PROPERTIES OUTPUT_NAME "sourcetraildb")
set_property(
TARGET ${LIB_CORE_TARGET_NAME}
PROPERTY INCLUDE_DIRECTORIES
"${CMAKE_CURRENT_SOURCE_DIR}/include"
"${GENERATED_INCLUDE_DIRECTORY}"
)
target_include_directories(${LIB_CORE_TARGET_NAME} SYSTEM
PUBLIC ../external/json/include
PUBLIC ../external/cpp_sqlite/include
)
set(TEST_SRC_FILES
test/test.cpp
)
add_executable(${TEST_CORE_TARGET_NAME} ${TEST_SRC_FILES})
target_include_directories(${TEST_CORE_TARGET_NAME} PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/include"
../external/catch/include
../external/json/include
../external/cpp_sqlite/include
"${GENERATED_INCLUDE_DIRECTORY}"
)
target_link_libraries(${TEST_CORE_TARGET_NAME} ${LIB_CORE_TARGET_NAME} ${CMAKE_DL_LIBS})