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