@@ -3,6 +3,32 @@ set(projectname cppapiframework)
33cmake_minimum_required (VERSION 3.6.0 )
44project (${projectname} VERSION 0.1.0)
55
6+ if ("${CMAKE_CURRENT_SOURCE_DIR} " STREQUAL "${CMAKE_SOURCE_DIR} " )
7+ message (STATUS "Configuring ${projectname} as a standalone project" )
8+ # Quando usado como projeto standalone, ativar testes por padrão
9+ set (_DEFAULT_PROJECT_BUILD_TESTS ON )
10+ else ()
11+ set (_DEFAULT_PROJECT_BUILD_TESTS OFF )
12+ endif ()
13+
14+ # --- Test options: nova e legada (retrocompatibilidade) --------------------
15+ # opção legada para compatibilidade com projetos que ainda usam o nome antigo
16+ option (CompileTestsApiFramework "Legacy: build tests for ${projectname} (deprecated)" OFF )
17+
18+ # opção nomeada pelo projeto, recomendada para controle a partir do CMake superior
19+ # o valor padrão depende se estamos no topo (standalone) ou como subprojeto
20+ option (${projectname} _BUILD_TESTS "Build tests for ${projectname} " ${_DEFAULT_PROJECT_BUILD_TESTS} )
21+
22+ # Somente inclua CTest se ainda não estiver definido e se alguma opção de teste for requerida
23+ if (NOT DEFINED BUILD_TESTING)
24+ if (CompileTestsApiFramework OR ${${projectname} _BUILD_TESTS})
25+ include (CTest )
26+ endif ()
27+ else ()
28+ # BUILD_TESTING já foi definido pelo projeto superior; nada a fazer
29+ endif ()
30+
31+
632if (NOT DEFINED CPPAPIFRAMEWORK_APPLY_FLAGS)
733 message ("Applying flags" )
834 set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
@@ -13,14 +39,12 @@ if (NOT DEFINED CPPAPIFRAMEWORK_APPLY_FLAGS)
1339 set (CMAKE_C_EXTENSIONS ON )
1440endif ()
1541
16- option (CompileTestsApiFramework "CompileTestsApiFramework" ON )
17-
1842set (CPACK_PROJECT_NAME ${PROJECT_NAME} )
1943set (CPACK_PROJECT_VERSION ${PROJECT_VERSION} )
2044set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin)
2145
2246if (NOT DEFINED DISABLE_MANUAL_FIND_PACKAGES)
23- if (" ${CompileTestsApiFramework} " STREQUAL "ON" )
47+ if (BUILD_TESTING AND cppapiframework_BUILD_TESTS )
2448 find_package (GTest REQUIRED )
2549 include (GoogleTest )
2650 endif ()
@@ -138,7 +162,8 @@ endif()
138162
139163target_link_libraries (${projectname} ${MYSQLCPPCONN_LIBRARY} )
140164
141- if ("${CompileTestsApiFramework} " STREQUAL "ON" )
142- add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /tests )
165+ if (BUILD_TESTING AND cppapiframework_BUILD_TESTS)
166+ message ("-- Compilando testes para ${projectname} " )
167+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /tests )
143168endif ()
144169
0 commit comments