build system: added fungos/cr to the list of dependencies required to compile lib tests

This commit is contained in:
Michele Caini
2019-12-05 15:08:01 +01:00
parent 93ebe91bc5
commit d59c052554
4 changed files with 51 additions and 28 deletions

View File

@@ -156,35 +156,13 @@ export(PACKAGE EnTT)
option(BUILD_TESTING "Enable testing with ctest." OFF)
if(BUILD_TESTING)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
option(FIND_GTEST_PACKAGE "Enable finding gtest package." OFF)
if(FIND_GTEST_PACKAGE)
find_package(GTest REQUIRED)
else()
# gtest, gtest_main, gmock and gmock_main targets are available from now on
set(GOOGLETEST_DEPS_DIR ${EnTT_SOURCE_DIR}/deps/googletest)
configure_file(${EnTT_SOURCE_DIR}/cmake/in/googletest.in ${GOOGLETEST_DEPS_DIR}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
add_subdirectory(${GOOGLETEST_DEPS_DIR}/src ${GOOGLETEST_DEPS_DIR}/build)
target_compile_features(gmock_main PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_FEATURES>)
target_compile_features(gmock PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_FEATURES>)
add_library(GTest::Main ALIAS gtest_main)
endif()
option(BUILD_BENCHMARK "Build benchmark." OFF)
option(BUILD_LIB "Build lib example." OFF)
option(BUILD_MOD "Build mod example." OFF)
option(BUILD_SNAPSHOT "Build snapshot example." OFF)
if(BUILD_MOD)
enable_language(C)
endif()
enable_testing()
add_subdirectory(test)
endif()

9
TODO
View File

@@ -40,6 +40,9 @@
* any-of rule for views/groups (eg entity has A and any of B/C/D)
* sparse set: there exists an alternative to paginated sparse arrays?
* see warning (vs2017 only): d:\a\entt\entt\src\entt\entity\registry.hpp(108)
* registry
- ::assure -> pool_type<T> &
- ::group improve, reduce code
* Mission: get rid of named types
- make it possible to use custom generators (eg for plugins)
@@ -49,12 +52,6 @@
* meta
* monostate
* locator
- registry::assure -> pool_type<T> &
- registry::group improve, reduce code
- families should be defined as out-of-class to guarantee the same identifiers for the same types
- Make the following parts work across boundaries:
* registry
* monostate
* locator
- update doc: family, dispatcher, emitter, registry, meta, across boundaries
- update tests

20
cmake/in/cr.in Normal file
View File

@@ -0,0 +1,20 @@
project(cr-download NONE)
cmake_minimum_required(VERSION 3.2)
include(ExternalProject)
ExternalProject_Add(
cr
GIT_REPOSITORY https://github.com/fungos/cr.git
GIT_TAG master
GIT_SHALLOW 1
DOWNLOAD_DIR ${CR_DEPS_DIR}
TMP_DIR ${CR_DEPS_DIR}/tmp
STAMP_DIR ${CR_DEPS_DIR}/stamp
SOURCE_DIR ${CR_DEPS_DIR}/src
BINARY_DIR ${CR_DEPS_DIR}/build
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)

View File

@@ -2,6 +2,24 @@
# Tests configuration
#
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
if(FIND_GTEST_PACKAGE)
find_package(GTest REQUIRED)
else()
# gtest, gtest_main, gmock and gmock_main targets are available from now on
set(GOOGLETEST_DEPS_DIR ${EnTT_SOURCE_DIR}/deps/googletest)
configure_file(${EnTT_SOURCE_DIR}/cmake/in/googletest.in ${GOOGLETEST_DEPS_DIR}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${GOOGLETEST_DEPS_DIR})
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
add_subdirectory(${GOOGLETEST_DEPS_DIR}/src ${GOOGLETEST_DEPS_DIR}/build)
target_compile_features(gmock_main PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_FEATURES>)
target_compile_features(gmock PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_FEATURES>)
add_library(GTest::Main ALIAS gtest_main)
endif()
include_directories($<TARGET_PROPERTY:EnTT,INTERFACE_INCLUDE_DIRECTORIES>)
add_compile_options($<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_OPTIONS>)
@@ -48,11 +66,21 @@ if(BUILD_LIB)
SETUP_AND_ADD_LIB_TEST(emitter)
SETUP_AND_ADD_LIB_TEST(meta)
SETUP_AND_ADD_LIB_TEST(registry)
set(CR_DEPS_DIR ${EnTT_SOURCE_DIR}/deps/cr)
configure_file(${EnTT_SOURCE_DIR}/cmake/in/cr.in ${CR_DEPS_DIR}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${CR_DEPS_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CR_DEPS_DIR})
set(CR_SRC_DIR ${CR_DEPS_DIR}/src)
# TODO
endif()
# Test mod
if(BUILD_MOD)
enable_language(C)
set(DUKTAPE_DEPS_DIR ${EnTT_SOURCE_DIR}/deps/duktape)
configure_file(${EnTT_SOURCE_DIR}/cmake/in/duktape.in ${DUKTAPE_DEPS_DIR}/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${DUKTAPE_DEPS_DIR})