CMakeLists.txt 2.71 KB
Newer Older
Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
1
2
3
4
5
6
7
cmake_minimum_required(VERSION 3.0)

if (MSVC)
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:tbb_debug.lib")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:tbb.lib")
endif()

8
9
10
include(CheckSymbolExists)
check_symbol_exists(getrusage sys/resource.h HAVE_GETRUSAGE)

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
##
# Determine the software version from VCS
# Fallback to descriptive version if VCS unavailable
set(VERSION_FALLBACK "unconfirmed-release-1.0b")
set(VERSION_FILE ${CMAKE_CURRENT_BINARY_DIR}/version.cpp)
set(VERSION_FILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/version.cpp.in)
set(VERSION_CACHE_FILE ${CMAKE_CURRENT_BINARY_DIR}/version.cache)
find_package(Git)
add_custom_target(
  genversion
  COMMAND ${CMAKE_COMMAND} -D OUTPUT=${VERSION_FILE}
                           -D TEMPLATE=${VERSION_FILE_IN}
                           -D VERSION_FALLBACK=${VERSION_FALLBACK}
                           -D VERSION_EXTRA=${VERSION_EXTRA}
                           -D VERSION_CACHE_FILE=${VERSION_CACHE_FILE}
                           -D GIT_EXECUTABLE=${GIT_EXECUTABLE}
                           -P ${CMAKE_SOURCE_DIR}/scripts/genversion.cmake
  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)

add_custom_command(
  OUTPUT ${VERSION_FILE}
  DEPENDS genversion
)
35

Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
36
37
38
39
40
41
configure_file (
  "${CMAKE_CURRENT_SOURCE_DIR}/TMC3Config.h.in"
  "${PROJECT_BINARY_DIR}/tmc3/TMC3Config.h"
)

file(GLOB PROJECT_IN_FILES "*.in")
42
43
44
45
46
47
48
file(GLOB PROJECT_INC_FILES
  "*.h"
  "../dependencies/nanoflann/*.hpp"
  "../dependencies/nanoflann/*.h"
  "../dependencies/arithmetic-coding/inc/*.h"
  "../dependencies/program-options-lite/*.h"
)
Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
49
file(GLOB PROJECT_INL_FILES "*.inl")
50
51
52
53
54
file(GLOB PROJECT_CPP_FILES
  "*.cpp"
  "../dependencies/arithmetic-coding/src/*.cpp"
  "../dependencies/program-options-lite/*.cpp"
)
Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
55
56
57
58
59
60
61
62
63
file(GLOB PROJECT_C_FILES "*.c")
file(GLOB PROJECT_CL_FILES "*.cl")
source_group (inc FILES ${PROJECT_INC_FILES})
source_group (input FILES ${PROJECT_IN_FILES})
source_group (inl FILES ${PROJECT_INL_FILES})
source_group (cpp FILES ${PROJECT_CPP_FILES})
source_group (c FILES ${PROJECT_C_FILES})
source_group (cl FILES ${PROJECT_CL_FILES})

64
65
include_directories(
  "${PROJECT_BINARY_DIR}/tmc3"
66
  "${CMAKE_CURRENT_SOURCE_DIR}"
67
68
69
70
71
  "${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/nanoflann"
  "${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/tbb/include"
  "${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/arithmetic-coding/inc"
  "${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/program-options-lite"
)
Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
72

73
74
75
76
77
78
79
80
81
82
83
add_executable (tmc3
  ${PROJECT_CPP_FILES}
  ${PROJECT_C_FILES}
  ${PROJECT_CL_FILES}
  ${PROJECT_PUB_FILES}
  ${PROJECT_INC_FILES}
  ${PROJECT_IN_FILES}
  ${PROJECT_INL_FILES}
  ${VERSION_FILE}
)
add_dependencies(tmc3 genversion)
Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
84
85
86
target_link_libraries (tmc3 tbb_static)

install (TARGETS tmc3 DESTINATION bin)