mirror of
https://github.com/IRBorisov/ConceptCore.git
synced 2025-06-26 17:20:37 +03:00
79 lines
1.5 KiB
CMake
79 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.23)
|
|
|
|
project (RSlang 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
|
|
unity/reflex_unity1.cpp
|
|
unity/reflex_unity2.cpp
|
|
unity/RSlang.cpp
|
|
unity/RSlang2.cpp
|
|
)
|
|
target_include_directories(${PROJECT_NAME}
|
|
PUBLIC
|
|
../cclCommons/include
|
|
include
|
|
PRIVATE
|
|
header
|
|
import/include
|
|
import/reflex/include
|
|
)
|
|
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 include/ DESTINATION include)
|
|
|
|
if(CC_BuildTests)
|
|
enable_testing()
|
|
add_subdirectory("test")
|
|
endif() |