mirror of
https://github.com/ThePhD/sol2.git
synced 2024-03-22 13:10:44 +08:00
Add options to disable build of tests and examples
Add a source gorup for headers. Detect all cases for "LuaJit"
This commit is contained in:
parent
242ed15777
commit
46e05b92e8
|
@ -8,19 +8,23 @@ include_directories(.)
|
|||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" "${CMAKE_MODULE_PATH}")
|
||||
|
||||
set(LUA_VERSION "5.3" CACHE STRING "The version of Lua needed (5.1, 5.2, 5.3, luaJIT)")
|
||||
set(LUA_VERSION "5.3" CACHE STRING "The version of Lua needed (5.1, 5.2, 5.3, LuaJIT)")
|
||||
string(TOLOWER ${LUA_VERSION} LUA_VERSION)
|
||||
if (LUA_VERSION MATCHES "5.1")
|
||||
find_package(Lua 5.1 EXACT REQUIRED)
|
||||
elseif(LUA_VERSION MATCHES "5.2")
|
||||
find_package(Lua 5.2 EXACT REQUIRED)
|
||||
elseif(LUA_VERSION MATCHES "5.3")
|
||||
find_package(Lua 5.3 EXACT REQUIRED)
|
||||
elseif(LUA_VERSION MATCHES "LuaJIT")
|
||||
elseif(LUA_VERSION MATCHES "luajit")
|
||||
find_package(LuaJIT REQUIRED)
|
||||
else()
|
||||
message(FATAL_ERROR "${LUA_VERSION} is not a supported version for lua.")
|
||||
endif()
|
||||
|
||||
option(TESTS "Enable build of tests" ON)
|
||||
option(EXAMPLES "Enable build of examples" ON)
|
||||
|
||||
include_directories(${LUA_INCLUDE_DIR})
|
||||
|
||||
# Features a C++ compiler must have to be used to compile sol2
|
||||
|
@ -46,31 +50,36 @@ set(CXX_FEATURES cxx_auto_type
|
|||
|
||||
file(GLOB HEADER_SRCS sol/*.hpp)
|
||||
set(HEADER_SRCS sol.hpp ${HEADER_SRCS})
|
||||
source_group(headers FILES ${HEADER_SRCS})
|
||||
|
||||
if (NOT MSVC)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning -Wno-unknown-warning-option -Wall -Wextra -Wpedantic -pedantic -pedantic-errors -Wno-noexcept-type -ftemplate-depth=1024")
|
||||
endif()
|
||||
|
||||
file(GLOB EXAMPLES_SRC examples/*.cpp)
|
||||
source_group(examples FILES ${EXAMPLES_SRC})
|
||||
foreach(example_source_file ${EXAMPLES_SRC})
|
||||
get_filename_component(example_name ${example_source_file} NAME_WE)
|
||||
set(example_name "example-${example_name}")
|
||||
add_executable(${example_name} ${example_source_file} ${HEADER_SRCS})
|
||||
target_link_libraries(${example_name} ${LUA_LIBRARIES})
|
||||
target_compile_features(${example_name} PUBLIC ${CXX_FEATURES})
|
||||
install(TARGETS ${example_name} RUNTIME DESTINATION bin/examples)
|
||||
endforeach()
|
||||
if (EXAMPLES)
|
||||
file(GLOB EXAMPLES_SRC examples/*.cpp)
|
||||
source_group(examples FILES ${EXAMPLES_SRC})
|
||||
foreach(example_source_file ${EXAMPLES_SRC})
|
||||
get_filename_component(example_name ${example_source_file} NAME_WE)
|
||||
set(example_name "example-${example_name}")
|
||||
add_executable(${example_name} ${example_source_file} ${HEADER_SRCS})
|
||||
target_link_libraries(${example_name} ${LUA_LIBRARIES})
|
||||
target_compile_features(${example_name} PUBLIC ${CXX_FEATURES})
|
||||
install(TARGETS ${example_name} RUNTIME DESTINATION bin/examples)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
file(GLOB TEST_SRC test*.cpp)
|
||||
source_group(tests FILES ${TEST_SRC})
|
||||
if (TESTS)
|
||||
file(GLOB TEST_SRC test*.cpp)
|
||||
source_group(tests FILES ${TEST_SRC})
|
||||
|
||||
add_executable(tests ${TEST_SRC} ${HEADER_SRCS})
|
||||
target_include_directories(tests PRIVATE ./Catch/include/)
|
||||
add_executable(tests ${TEST_SRC} ${HEADER_SRCS})
|
||||
target_include_directories(tests PRIVATE ./Catch/include/)
|
||||
|
||||
find_package(Threads)
|
||||
target_link_libraries(tests Threads::Threads ${LUA_LIBRARIES})
|
||||
install(TARGETS tests RUNTIME DESTINATION bin)
|
||||
find_package(Threads)
|
||||
target_link_libraries(tests Threads::Threads ${LUA_LIBRARIES})
|
||||
install(TARGETS tests RUNTIME DESTINATION bin)
|
||||
endif()
|
||||
|
||||
find_package(PythonInterp 3)
|
||||
if (PYTHONINTERP_FOUND)
|
||||
|
|
Loading…
Reference in New Issue
Block a user