43 lines
1.2 KiB
CMake
Vendored
43 lines
1.2 KiB
CMake
Vendored
cmake_minimum_required (VERSION 3.10)
|
|
|
|
project (LuaBridge)
|
|
|
|
include (CMakeDependentOption)
|
|
|
|
if (NOT CMAKE_CXX_STANDARD)
|
|
set (CMAKE_CXX_STANDARD 20)
|
|
endif()
|
|
|
|
set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set (CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
find_program (FIND_EXECUTABLE find)
|
|
find_program (LCOV_EXECUTABLE lcov)
|
|
find_program (GENHTML_EXECUTABLE genhtml)
|
|
|
|
cmake_dependent_option (LUABRIDGE_TESTING "Build tests" ON "CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF)
|
|
cmake_dependent_option (LUABRIDGE_COVERAGE "Enable coverage" OFF "LUABRIDGE_TESTING;FIND_EXECUTABLE;LCOV_EXECUTABLE;GENHTML_EXECUTABLE" OFF)
|
|
cmake_dependent_option (LUABRIDGE_BENCHMARKS "Build benchmark executable" OFF "CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF)
|
|
set (LUABRIDGE_SANITIZE "" CACHE STRING "Sanitizer to enable (address, undefined, thread)")
|
|
|
|
add_subdirectory (Source)
|
|
|
|
if (LUABRIDGE_TESTING)
|
|
include (CTest)
|
|
enable_testing()
|
|
set (gtest_force_shared_crt ON CACHE BOOL "Use /MD and /MDd" FORCE)
|
|
add_subdirectory (ThirdParty/googletest)
|
|
add_subdirectory (Tests)
|
|
endif ()
|
|
|
|
if (LUABRIDGE_BENCHMARKS)
|
|
add_subdirectory (Benchmarks)
|
|
endif ()
|
|
|
|
add_custom_target (Documentation SOURCES
|
|
CHANGES.md
|
|
README.md
|
|
Manual.md
|
|
Doxyfile
|
|
)
|