2024-04-15 22:16:14 +03:00
|
|
|
|
cmake_minimum_required(VERSION 3.23)
|
|
|
|
|
|
|
|
|
|
project (ConceptCoreLibrary VERSION 1.2.0 LANGUAGES CXX)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
|
|
|
|
|
|
##
|
|
|
|
|
## Project options
|
|
|
|
|
##
|
|
|
|
|
option(CC_BuildTests "Include tests executable" TRUE)
|
|
|
|
|
option(CC_UseSanitizers "Use sanitizers" FALSE)
|
|
|
|
|
|
|
|
|
|
## Compiler options
|
|
|
|
|
include(cmake/CXXTargets.cmake)
|
|
|
|
|
|
|
|
|
|
##
|
|
|
|
|
## Project Setup
|
|
|
|
|
##
|
|
|
|
|
add_library(${PROJECT_NAME})
|
|
|
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
|
|
|
OUTPUT_NAME ${PROJECT_NAME}
|
|
|
|
|
DEBUG_POSTFIX d
|
|
|
|
|
POSITION_INDEPENDENT_CODE ON
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_sources(${PROJECT_NAME}
|
|
|
|
|
PRIVATE
|
|
|
|
|
core/unity/CCL.cpp
|
2024-04-16 20:00:25 +03:00
|
|
|
|
cclGraph/src/CGraph.cpp
|
|
|
|
|
rslang/unity/reflex_unity1.cpp
|
|
|
|
|
rslang/unity/reflex_unity2.cpp
|
|
|
|
|
rslang/unity/RSlang.cpp
|
|
|
|
|
rslang/unity/RSlang2.cpp
|
|
|
|
|
cclLang/unity/cclLang.cpp
|
2024-04-15 22:16:14 +03:00
|
|
|
|
)
|
|
|
|
|
target_include_directories(${PROJECT_NAME}
|
|
|
|
|
PUBLIC
|
|
|
|
|
cclCommons/include
|
|
|
|
|
cclGraph/include
|
|
|
|
|
cclLang/include
|
|
|
|
|
rslang/include
|
|
|
|
|
core/include
|
|
|
|
|
PRIVATE
|
|
|
|
|
core/import/include
|
|
|
|
|
core/header
|
2024-04-16 20:00:25 +03:00
|
|
|
|
cclGraph/header
|
|
|
|
|
cclGraph/import/include
|
|
|
|
|
rslang/header
|
|
|
|
|
rslang/import/include
|
|
|
|
|
rslang/import/reflex/include
|
|
|
|
|
cclLang/header
|
|
|
|
|
cclLang/import/include
|
2024-04-15 22:16:14 +03:00
|
|
|
|
)
|
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
|
|
|
PRIVATE
|
|
|
|
|
ccl_CXXwarnings
|
|
|
|
|
ccl_CXXoptions
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if(MSVC)
|
|
|
|
|
if (CMAKE_BUILD_TYPE EQUAL "DEBUG")
|
|
|
|
|
set(LIB_SUFFIX d)
|
|
|
|
|
else()
|
|
|
|
|
set(LIB_SUFFIX "")
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
set_target_properties(${PROJECT_NAME}
|
|
|
|
|
PROPERTIES
|
|
|
|
|
COMPILE_PDB_NAME ${PROJECT_NAME}${LIB_SUFFIX}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
get_target_property(output_dir ${PROJECT_NAME} BINARY_DIR)
|
|
|
|
|
install(FILES ${output_dir}/$<CONFIG>/${PROJECT_NAME}${LIB_SUFFIX}.pdb DESTINATION lib)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
install(TARGETS ${PROJECT_NAME}
|
|
|
|
|
ARCHIVE
|
|
|
|
|
DESTINATION lib
|
|
|
|
|
LIBRARY
|
|
|
|
|
DESTINATION lib
|
|
|
|
|
INCLUDES
|
|
|
|
|
DESTINATION include
|
|
|
|
|
)
|
|
|
|
|
install(DIRECTORY core/include/ DESTINATION include)
|
|
|
|
|
|
|
|
|
|
if(CC_BuildTests)
|
2024-04-17 14:43:14 +03:00
|
|
|
|
add_subdirectory(cclCommons)
|
|
|
|
|
add_subdirectory(cclGraph)
|
|
|
|
|
add_subdirectory(cclLang)
|
|
|
|
|
add_subdirectory(rslang)
|
|
|
|
|
|
2024-04-15 22:16:14 +03:00
|
|
|
|
enable_testing()
|
|
|
|
|
add_subdirectory("core/test")
|
|
|
|
|
endif()
|