@@ -28,7 +28,7 @@ include(GNUInstallDirs)
28
28
29
29
option (MRDOX_BUILD_TESTS "Build tests" ${BUILD_TESTING} )
30
30
option (MRDOX_BUILD_SHARED "Link shared" OFF )
31
- option (MRDOX_BUILD_DOCS "Configure install target " OFF )
31
+ option (MRDOX_BUILD_DOCS "Build documentation " OFF )
32
32
option (MRDOX_INSTALL "Configure install target" ON )
33
33
option (MRDOX_PACKAGE "Build install package" ON )
34
34
option (MRDOX_GENERATE_REFERENCE "Generate reference.xml/reference.adoc" ON )
@@ -204,6 +204,7 @@ endif ()
204
204
205
205
file (GLOB_RECURSE TOOL_SOURCES CONFIGURE_DEPENDS tool/*.cpp tool/*.hpp)
206
206
add_executable (mrdox ${TOOL_SOURCES} )
207
+ target_compile_definitions (mrdox PRIVATE -DMRDOX_TOOL)
207
208
208
209
target_include_directories (mrdox
209
210
PUBLIC
@@ -225,39 +226,6 @@ if (MRDOX_CLANG)
225
226
)
226
227
endif ()
227
228
228
-
229
- #-------------------------------------------------
230
- #
231
- # Tests
232
- #
233
- #-------------------------------------------------
234
-
235
- file (GLOB TEST_SOURCES CONFIGURE_DEPENDS
236
- test /*.cpp
237
- test /*.hpp)
238
- add_executable (mrdox-test ${TEST_SOURCES} )
239
-
240
- target_include_directories (mrdox-test
241
- PRIVATE
242
- "${PROJECT_SOURCE_DIR} /include"
243
- "${PROJECT_SOURCE_DIR} /lib"
244
- "${PROJECT_SOURCE_DIR} /test"
245
- "${PROJECT_SOURCE_DIR} /tool"
246
- )
247
-
248
- target_compile_definitions (mrdox PRIVATE -DMRDOX_TOOL)
249
- target_link_libraries (mrdox-test PUBLIC mrdox-core)
250
-
251
- if (MRDOX_CLANG)
252
- target_compile_options (
253
- mrdox-test
254
- PRIVATE
255
- -Wno-covered-switch-default
256
- )
257
- endif ()
258
-
259
- #-------------------------------------------------------------------------------
260
-
261
229
set_property (GLOBAL PROPERTY USE_FOLDERS ON )
262
230
#source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "" FILES CMakeLists.txt)
263
231
source_group (TREE ${PROJECT_SOURCE_DIR} /include /mrdox PREFIX "include" FILES ${INCLUDES} )
@@ -270,8 +238,27 @@ source_group(TREE ${PROJECT_SOURCE_DIR}/source PREFIX "source" FILES ${SOURCES})
270
238
#-------------------------------------------------
271
239
272
240
if (MRDOX_BUILD_TESTS)
273
- # if we run tests, we need the addons in the right place.
241
+ #-------------------------------------------------
242
+ # Unit tests
243
+ #-------------------------------------------------
244
+ include (CTest)
245
+ file (GLOB_RECURSE TEST_SUITE_FILES CONFIGURE_DEPENDS test /test_suite/*.cpp test /test_suite/*.hpp)
246
+ file (GLOB_RECURSE UNIT_TEST_SOURCES CONFIGURE_DEPENDS test /unit/*.cpp test /unit/*.hpp)
247
+ add_executable (mrdox-test ${TEST_SUITE_FILES} ${UNIT_TEST_SOURCES} )
248
+ target_include_directories (mrdox-test
249
+ PRIVATE
250
+ "${PROJECT_SOURCE_DIR} /include"
251
+ "${PROJECT_SOURCE_DIR} /lib"
252
+ "${PROJECT_SOURCE_DIR} /tool"
253
+ "${PROJECT_SOURCE_DIR} /test/test_suite"
254
+ )
255
+ target_link_libraries (mrdox-test PUBLIC mrdox-core)
256
+ if (MRDOX_CLANG)
257
+ target_compile_options (mrdox-test PRIVATE -Wno-covered-switch-default)
258
+ endif ()
259
+ target_compile_definitions (mrdox-test PRIVATE -DMRDOX_UNIT_TEST_DIR="${CMAKE_CURRENT_SOURCE_DIR} /test/unit" )
274
260
add_custom_command (
261
+ # if we run tests, we need the addons in the right place.
275
262
TARGET mrdox-test
276
263
POST_BUILD
277
264
COMMAND ${CMAKE_COMMAND} -E copy
@@ -280,25 +267,28 @@ if (MRDOX_BUILD_TESTS)
280
267
BYPRODUCTS ${CMAKE_BINARY_DIR} /addons
281
268
DEPENDS ${CMAKE_SOURCE_DIR} /addons
282
269
)
270
+ add_test (NAME mrdox-test COMMAND mrdox-test --action test "${PROJECT_SOURCE_DIR} /test-files/old-tests" )
283
271
284
- file (GLOB_RECURSE TEST_SOURCES CONFIGURE_DEPENDS source /*.cpp source /*.hpp)
285
- enable_testing ()
286
- add_test (NAME mrdox-test COMMAND mrdox-test --action test
287
- "${PROJECT_SOURCE_DIR} /test-files/old-tests"
288
- )
289
-
272
+ #-------------------------------------------------
273
+ # Reference documentation
274
+ #-------------------------------------------------
290
275
if (MRDOX_GENERATE_REFERENCE)
291
276
# test run
277
+ file (GLOB_RECURSE REFERENCE_SOURCES CONFIGURE_DEPENDS source /*.cpp source /*.hpp)
278
+
292
279
set (CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} )
293
280
include (mrdox.cmake)
294
281
295
- mrdox(FORMAT adoc CONFIG docs/mrdox.yml SOURCES ${TEST_SOURCES } )
296
- mrdox(FORMAT xml CONFIG docs/mrdox.yml SOURCES ${TEST_SOURCES } )
282
+ mrdox(FORMAT adoc CONFIG docs/mrdox.yml SOURCES ${REFERENCE_SOURCES } )
283
+ mrdox(FORMAT xml CONFIG docs/mrdox.yml SOURCES ${REFERENCE_SOURCES } )
297
284
298
285
add_custom_target (reference_adoc ALL DEPENDS reference.adoc)
299
286
add_custom_target (reference_xml ALL DEPENDS reference.xml)
300
287
endif ()
301
288
289
+ #-------------------------------------------------
290
+ # XML lint
291
+ #-------------------------------------------------
302
292
find_package (LibXml2)
303
293
if (LibXml2_FOUND)
304
294
find_package (Java REQUIRED Runtime)
@@ -321,9 +311,6 @@ if (MRDOX_BUILD_TESTS)
321
311
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
322
312
endif ()
323
313
324
- add_executable (handlebars-test test /unit/handlebars.cpp)
325
- target_link_libraries (handlebars-test PUBLIC mrdox-core)
326
- target_compile_definitions (handlebars-test PRIVATE -DMRDOX_UNIT_TEST_DIR="${CMAKE_CURRENT_SOURCE_DIR} /test/unit" )
327
314
endif ()
328
315
329
316
0 commit comments