|
|
|
@@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 2.8.9)
|
|
|
|
|
include(cmake/add_files.cmake)
|
|
|
|
|
include(cmake/create_source_groups.cmake)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Variables --------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
set(PROJECT_NAME masterproject)
|
|
|
|
@@ -12,6 +11,10 @@ set(APP_PROJECT_NAME "${PROJECT_NAME}_app")
|
|
|
|
|
set(LIB_PROJECT_NAME "${PROJECT_NAME}_lib")
|
|
|
|
|
set(TEST_PROJECT_NAME "${PROJECT_NAME}_test")
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
set(PLATFORM_INCLUDES "#include \"includesWindows.h\"")
|
|
|
|
|
LINK_DIRECTORIES($ENV{VLD_DIR}/lib/Win32) # this adds the library path for VLD, must be done before the project target is created
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Settings ---------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
@@ -38,15 +41,17 @@ add_library(${LIB_PROJECT_NAME} ${LIB_FILES})
|
|
|
|
|
|
|
|
|
|
create_source_groups(${LIB_FILES})
|
|
|
|
|
|
|
|
|
|
set_target_properties( ${LIB_PROJECT_NAME}
|
|
|
|
|
PROPERTIES DEBUG_OUTPUT_NAME ${PROJECT_NAME}_d
|
|
|
|
|
RELEASE_OUTPUT_NAME ${PROJECT_NAME})
|
|
|
|
|
set_target_properties(
|
|
|
|
|
${LIB_PROJECT_NAME}
|
|
|
|
|
PROPERTIES DEBUG_OUTPUT_NAME ${PROJECT_NAME}_d
|
|
|
|
|
RELEASE_OUTPUT_NAME ${PROJECT_NAME}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# App --------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
add_subdirectory(src/app)
|
|
|
|
|
include_directories(src/lib src/app)
|
|
|
|
|
include_directories(src/lib src/app build/src/app)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Find includes in corresponding build directories
|
|
|
|
@@ -59,7 +64,6 @@ set(CMAKE_PREFIX_PATH "$ENV{QT_DIR}/")
|
|
|
|
|
|
|
|
|
|
find_package(Qt5Widgets)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add_executable(${APP_PROJECT_NAME} ${APP_FILES})
|
|
|
|
|
|
|
|
|
|
create_source_groups(${APP_FILES})
|
|
|
|
@@ -69,10 +73,14 @@ target_link_libraries(${APP_PROJECT_NAME} ${LIB_PROJECT_NAME})
|
|
|
|
|
# Use the Widgets module from Qt 5.
|
|
|
|
|
qt5_use_modules(${APP_PROJECT_NAME} Widgets)
|
|
|
|
|
|
|
|
|
|
# configure platform specific include file
|
|
|
|
|
configure_file(
|
|
|
|
|
"${PROJECT_SOURCE_DIR}/src/app/includes.h.in"
|
|
|
|
|
"${PROJECT_SOURCE_DIR}/build/src/app/includes.h"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_AUTOMOC OFF)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# CxxTest ----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
add_subdirectory(src/test)
|
|
|
|
@@ -99,25 +107,40 @@ target_link_libraries(${TEST_PROJECT_NAME} ${LIB_PROJECT_NAME})
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
|
|
|
|
|
add_custom_command(TARGET ${TEST_PROJECT_NAME}
|
|
|
|
|
PRE_BUILD
|
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE} --runner=ParenPrinter -o ${TESTGEN_FILE} ${PROJECT_SOURCE_DIR}/src/test/*.h
|
|
|
|
|
COMMENT "Generating unittest code with cxxtestgen")
|
|
|
|
|
add_custom_command(
|
|
|
|
|
TARGET ${TEST_PROJECT_NAME}
|
|
|
|
|
PRE_BUILD
|
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE} --runner=ParenPrinter -o ${TESTGEN_FILE} ${PROJECT_SOURCE_DIR}/src/test/*.h
|
|
|
|
|
COMMENT "Generating unittest code with cxxtestgen"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_custom_command(TARGET ${TEST_PROJECT_NAME}
|
|
|
|
|
POST_BUILD
|
|
|
|
|
COMMAND $(OutDir)$(TargetName)$(TargetExt)
|
|
|
|
|
COMMENT "Running unittest code")
|
|
|
|
|
add_custom_command(
|
|
|
|
|
TARGET ${TEST_PROJECT_NAME}
|
|
|
|
|
POST_BUILD
|
|
|
|
|
COMMAND $(OutDir)$(TargetName)$(TargetExt)
|
|
|
|
|
COMMENT "Running unittest code"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
elseif (UNIX)
|
|
|
|
|
|
|
|
|
|
add_custom_command(OUTPUT ${TESTGEN_FILE}
|
|
|
|
|
PRE_BUILD
|
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE} --runner=ParenPrinter -o ${TESTGEN_FILE} ${PROJECT_SOURCE_DIR}/src/test/*.h
|
|
|
|
|
COMMENT "Generating unittest code with cxxtestgen")
|
|
|
|
|
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT ${TESTGEN_FILE}
|
|
|
|
|
PRE_BUILD
|
|
|
|
|
COMMAND ${PYTHON_EXECUTABLE} ${CXXTEST_PYTHON_TESTGEN_EXECUTABLE} --runner=ParenPrinter -o ${TESTGEN_FILE} ${PROJECT_SOURCE_DIR}/src/test/*.h
|
|
|
|
|
COMMENT "Generating unittest code with cxxtestgen"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_custom_target(gen DEPENDS ${TESTGEN_FILE})
|
|
|
|
|
|
|
|
|
|
add_dependencies(${TEST_PROJECT_NAME} gen)
|
|
|
|
|
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
# Visual Leak Detector ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
|
|
|
|
|
include_directories($ENV{VLD_DIR}/include)
|
|
|
|
|
|
|
|
|
|
endif()
|
|
|
|
|