/
UCS
/
sqlite_orm
Обзор
Документация
Войти
/
UCS
/
sqlite_orm
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
CMakeLists.txt
87 строк
3 KB
Niccolò Iardella
Use PROJECT_NAME in main CMakeLists.txt
19 дек 2022, 11:27
Не верифицирован
19 дек 2022, 11:27
94d2f76
Код
Авторство
О чём код?
cmake_minimum_required (VERSION 3.14.0) # PACKAGE_VERSION is used by cpack scripts currently # Both sqlite_orm_VERSION and PACKAGE_VERSION should be the same for now set(sqlite_orm_VERSION "1.8.0") set(PACKAGE_VERSION ${sqlite_orm_VERSION}) project("sqlite_orm" VERSION ${PACKAGE_VERSION}) # Handling C++ standard version to use option(SQLITE_ORM_ENABLE_CXX_20 "Enable C++ 20" OFF) option(SQLITE_ORM_ENABLE_CXX_17 "Enable C++ 17" OFF) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(SQLITE_ORM_ENABLE_CXX_20) set(CMAKE_CXX_STANDARD 20) message(STATUS "SQLITE_ORM: Build with C++20 features") elseif(SQLITE_ORM_ENABLE_CXX_17) set(CMAKE_CXX_STANDARD 17) message(STATUS "SQLITE_ORM: Build with C++17 features") else() # fallback to C++14 if there is no special instruction set(CMAKE_CXX_STANDARD 14) message(STATUS "SQLITE_ORM: Build with C++14 features") endif() set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_VERBOSE_MAKEFILE ON) message(STATUS "Configuring ${PROJECT_NAME} ${sqlite_orm_VERSION}") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") include(CTest) ### Dependencies add_subdirectory(dependencies) ### Main Build Targets set(SqliteOrm_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/include") add_library(sqlite_orm INTERFACE) add_library(sqlite_orm::sqlite_orm ALIAS sqlite_orm) find_package(SQLite3 REQUIRED) target_link_libraries(sqlite_orm INTERFACE SQLite::SQLite3) target_sources(sqlite_orm INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/sqlite_orm/sqlite_orm.h>) target_include_directories(sqlite_orm INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>) include(ucm) if (MSVC) string(REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") string(REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") add_compile_options(/EHsc) if (MSVC_VERSION GREATER_EQUAL 1914) add_compile_options(/Zc:__cplusplus) endif() add_compile_options(/MP) # multi-processor compilation if (CMAKE_CXX_STANDARD GREATER 14) add_compile_definitions(_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING) endif() if ("${CMAKE_GENERATOR}" MATCHES "(Win64|x64)") message(STATUS "Add /bigobj flag to compiler") add_compile_options(/bigobj) endif() endif() ucm_print_flags() message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") # Tests if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING) add_subdirectory(tests) endif() option(BUILD_EXAMPLES ON) if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_EXAMPLES) add_subdirectory(examples) endif() ### Packaging add_subdirectory(packaging)