-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
executable file
·95 lines (76 loc) · 3.51 KB
/
CMakeLists.txt
File metadata and controls
executable file
·95 lines (76 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
cmake_minimum_required (VERSION 3.0)
project (MUSI6106
VERSION 0.0.0.1)
#######################################################################################################
## includes
# where to look for the default stuff...
set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake.modules")
# platform detection
include (SetPlatform)
# output directories
include (SetOutputDir)
# oslibs
include (SetOsLibs)
# helper functions
include(AddSrcDirectories)
include(AddIncDirectories)
#######################################################################################################
## project specific stuff
# set directories
set (PROJECT_DIRECTORIES)
list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/${PROJECT_NAME}Exec)
list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/AudioFileIO)
list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/CombFilter)
list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/Fft)
#list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/Dtw)
list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/UtilsFunction_C)
list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/Sinusoid)
list (APPEND PROJECT_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/Tests/TestExec)
# set includes
set (PROJECT_INCLUDES)
list (APPEND PROJECT_INCLUDES ${CMAKE_SOURCE_DIR}/inc)
list (APPEND PROJECT_INCLUDES ${CMAKE_SOURCE_DIR}/src/inc)
list (APPEND PROJECT_INCLUDES ${CMAKE_BINARY_DIR}/inc)
# add directories
add_src_directories ()
# output version number variable
message(STATUS ${PROJECT_NAME} Version: ${PROJECT_VERSION})
message(STATUS "")
# generate platform config file
configure_file(${CMAKE_SOURCE_DIR}/src/${PROJECT_NAME}Config.h.in ${CMAKE_BINARY_DIR}/inc/${PROJECT_NAME}Config.h)
# integrate cppcheck targets in IDE
option (WITH_CPPCHECKTARGET "Add target for cppcheck testing" ON)
#######################################################################################################
# ## tests
# with tests or not
option (WITH_TESTS "Use UnitTest++ for testing" OFF)
if (WITH_TESTS)
include(AddCppcheckTest)
enable_testing()
# add tests here
add_test(RingBuff ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestExec RingBuff)
add_test(RingBuff ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestExec Fft)
add_test(AudioIo ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestExec AudioIo "${CMAKE_SOURCE_DIR}/src/Tests/TestData/")
#add_test(CombFilter ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestExec CombFilter)
#add_test(Dtw ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestExec Dtw)
#add_test(Vibrato ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestExec Vibrato)
add_cppcheck_test ()
endif (WITH_TESTS)
#######################################################################################################
## add documentation
#-- Add an Option to toggle the generation of the API documentation
option(WITH_DOXYGENTARGET "Use Doxygen to create the documentation" OFF)
if(WITH_DOXYGENTARGET)
FIND_PACKAGE(Doxygen)
if (NOT DOXYGEN_FOUND)
message(FATAL_ERROR
"Doxygen is needed to build the documentation. Please install it correctly")
endif(NOT DOXYGEN_FOUND)
#-- Configure the Template doxy.config for our specific project
configure_file(${CMAKE_SOURCE_DIR}/src/doxy.config.in
${PROJECT_BINARY_DIR}/docs/doxy.config @ONLY IMMEDIATE)
#-- Add a custom target to run Doxygen when ever the project is built
add_custom_target (Doxy_documentation
COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/docs/doxy.config
SOURCES ${PROJECT_BINARY_DIR}/docs/doxy.config)
endif(WITH_DOXYGENTARGET)