CMakeLists.txt 1.74 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)

David Flynn's avatar
David Flynn committed
11
12
set (TMC3_VERSION_MAJOR 1)
set (TMC3_VERSION_MINOR 0)
13

Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
14
15
16
17
18
19
configure_file (
  "${CMAKE_CURRENT_SOURCE_DIR}/TMC3Config.h.in"
  "${PROJECT_BINARY_DIR}/tmc3/TMC3Config.h"
)

file(GLOB PROJECT_IN_FILES "*.in")
20
21
22
23
24
25
26
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
27
file(GLOB PROJECT_INL_FILES "*.inl")
28
29
30
31
32
file(GLOB PROJECT_CPP_FILES
  "*.cpp"
  "../dependencies/arithmetic-coding/src/*.cpp"
  "../dependencies/program-options-lite/*.cpp"
)
Khaled Mammou's avatar
TMC3v0  
Khaled Mammou committed
33
34
35
36
37
38
39
40
41
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})

42
43
44
45
46
47
48
include_directories(
  "${PROJECT_BINARY_DIR}/tmc3"
  "${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
49
50
51
52
53

add_executable(tmc3 ${PROJECT_CPP_FILES} ${PROJECT_C_FILES} ${PROJECT_CL_FILES} ${PROJECT_PUB_FILES} ${PROJECT_INC_FILES} ${PROJECT_IN_FILES} ${PROJECT_INL_FILES})
target_link_libraries (tmc3 tbb_static)

install (TARGETS tmc3 DESTINATION bin)