-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
76 lines (61 loc) · 3.94 KB
/
CMakeLists.txt
File metadata and controls
76 lines (61 loc) · 3.94 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
#########################################################################################
# #
# Simple project example for code structure using CMake #
# #
# Copyright (c) 2014 #
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy of this #
# software and associated documentation files (the "Software"), to deal in the Software #
# without restriction, including without limitation the rights to use, copy, modify, #
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the following #
# conditions: #
# #
# The above copyright notice and this permission notice shall be included in all copies #
# or substantial portions of the Software. #
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, #
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A #
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT #
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF #
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE #
# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #
#########################################################################################
#########################################################################################
# General Settings
#########################################################################################
# Decide on minimum requirements (optional)
cmake_minimum_required (VERSION 2.8)
# create and name your project
project (Hello)
# create variables for project folders
set(HELLO_BASE_DIR "${PROJECT_SOURCE_DIR}")
set(HELLO_EXT_DIR "${HELLO_BASE_DIR}/ext")
# Actiating c++11, requires a modern compiler
SET(CMAKE_CXX_FLAGS "-std=c++11")
# Initiate the DEPENDENT_LIBS variable to nothing (does not need to be done)
# this variable will be used to contain all libraries that we are linking with
set(DEPENDENT_LIBS "")
# add search path for CMake modules (not used at the moment)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${HELLO_EXT_DIR})
#########################################################################################
# Libraries and dependencies
#########################################################################################
#######################################
# The home-made library
#######################################
# set variables for home made library
set(HELLOLIB_ROOT_DIR "${HELLO_EXT_DIR}/HelloLib")
#include the library header files
include_directories("${HELLOLIB_ROOT_DIR}/include")
# add the library directory to CMake build (only building library, not linking), the
# library dependent settings occurs in the HELLOLIB_ROOT_DIR CMakeLists.txt
add_subdirectory(${HELLOLIB_ROOT_DIR})
# Add the home made library to the dependent libs
set(DEPENDENT_LIBS ${DEPENDENT_LIBS} HelloLib)
#########################################################################################
# Executable
#########################################################################################
# add the src directory to CMake build, the binary dependent settings occurs in the
# src folder CMakeLists.txt
add_subdirectory(src)