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" "${CMAKE_BINARY_DIR} /conan.cmake" )
16+ endif ()
17+
18+ include (${CMAKE_BINARY_DIR} /conan.cmake )
19+ conan_cmake_configure (REQUIRES angelscript/2.35.1 catch2/3.1.0 GENERATORS cmake_find_package )
20+ conan_cmake_autodetect (settings )
21+ conan_cmake_install (PATH_OR_REFERENCE . BUILD missing SETTINGS ${settings} )
22+ endif ()
923
1024find_package (Angelscript REQUIRED )
25+ find_package (Catch2 )
1126
12- project (Testbed)
1327
1428file (COPY "${CMAKE_SOURCE_DIR} /../Example.as" DESTINATION "${CMAKE_BINARY_DIR} " )
1529
1630set (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 )
31+ ../RefCountingObject.h
32+ ../RefCountingObjectPtr.h
33+ debug_log.h
34+ scriptstdstring.h
35+
36+ ../Example.cpp
37+
38+ scriptstdstring.cpp
39+ )
40+
41+ add_executable (${PROJECT_NAME} ${SRC} main.cpp )
3142target_link_libraries (${PROJECT_NAME} PRIVATE Angelscript::angelscript )
3243
44+ if (Catch2_FOUND)
45+ include (CTest )
46+ include (Catch )
47+ enable_testing ()
48+
49+ set (TEST_PR_NAME "${PROJECT_NAME} _tests" )
50+
51+ add_executable (${TEST_PR_NAME} ${SRC} test .cpp )
52+ target_link_libraries (${TEST_PR_NAME} PRIVATE Catch2::Catch2 Angelscript::angelscript Catch2::Catch2WithMain )
53+
54+ catch_discover_tests (${TEST_PR_NAME} )
55+ endif ()
56+
3357if (WIN32 )
3458 target_link_libraries (${PROJECT_NAME} PRIVATE Winmm )
35- endif ()
59+ if (Catch2_FOUND)
60+ target_link_libraries (${TEST_PR_NAME} PRIVATE Winmm )
61+ endif ()
62+ endif ()
0 commit comments