11#-------------------------------------------------------
22# Testbed Main Build Script
33#-------------------------------------------------------
4- set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_BINARY_DIR} )
54cmake_minimum_required (VERSION 3.0 )
5+ set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_BINARY_DIR} )
6+
7+ project (testbed)
68
79set_property (GLOBAL PROPERTY USE_FOLDERS ON )
8- set (CMAKE_CXX_STANDARD 11)
10+ set (CMAKE_CXX_STANDARD 14)
11+
12+ if (USE_CONAN)
13+ if (NOT EXISTS "${CMAKE_BINARY_DIR} /conan.cmake" )
14+ message (STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan" )
15+ file (DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/0.18.1/conan.cmake"
16+ "${CMAKE_BINARY_DIR} /conan.cmake"
17+ TLS_VERIFY ON )
18+ endif ()
19+
20+ include (${CMAKE_BINARY_DIR} /conan.cmake )
21+ conan_cmake_configure (REQUIRES angelscript/2.35.1 catch2/3.1.0 GENERATORS cmake_find_package )
22+ conan_cmake_autodetect (settings )
23+ conan_cmake_install (PATH_OR_REFERENCE . BUILD missing SETTINGS ${settings} )
24+ endif ()
925
1026find_package (Angelscript REQUIRED )
27+ find_package (Catch2 )
1128
12- project (Testbed)
1329
1430file (COPY "${CMAKE_SOURCE_DIR} /../Example.as" DESTINATION "${CMAKE_BINARY_DIR} " )
1531
1632set (SRC
17- ../RefCountingObject.h
18- ../RefCountingObjectHandle.h
19- ../RefCountingObjectPtr.h
20- debug_log.h
21- scriptstdstring.h
22-
23- ../Example.cpp
24- ../RefCountingObjectHandle.cpp
25- main.cpp
26- scriptstdstring.cpp
27- )
28-
29- add_executable (${PROJECT_NAME} ${SRC} )
30- target_compile_definitions (${PROJECT_NAME} PRIVATE RCO_ENABLE_DEBUGTRACE )
33+ ../RefCountingObject.h
34+ ../RefCountingObjectPtr.h
35+ debug_log.h
36+ scriptstdstring.h
37+
38+ ../Example.cpp
39+
40+ scriptstdstring.cpp
41+ )
42+
43+ add_executable (${PROJECT_NAME} ${SRC} main.cpp )
3144target_link_libraries (${PROJECT_NAME} PRIVATE Angelscript::angelscript )
3245
46+ if (Catch2_FOUND)
47+ include (CTest )
48+ include (Catch )
49+ enable_testing ()
50+
51+ set (TEST_PR_NAME "${PROJECT_NAME} _tests" )
52+
53+ add_executable (${TEST_PR_NAME} ${SRC} test .cpp )
54+ target_link_libraries (${TEST_PR_NAME} PRIVATE Catch2::Catch2 Angelscript::angelscript Catch2::Catch2WithMain )
55+
56+ catch_discover_tests (${TEST_PR_NAME} )
57+ endif ()
58+
3359if (WIN32 )
3460 target_link_libraries (${PROJECT_NAME} PRIVATE Winmm )
35- endif ()
61+ if (Catch2_FOUND)
62+ target_link_libraries (${TEST_PR_NAME} PRIVATE Winmm )
63+ endif ()
64+ endif ()
0 commit comments