-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
107 lines (81 loc) · 3.27 KB
/
CMakeLists.txt
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
96
97
98
99
100
101
102
103
104
105
106
107
#####################################
# Main CMake file for CppZip
#####################################
cmake_minimum_required(VERSION 2.8)
project(CppZip)
#Version informations
set (CPPZIP_VERSION_MAJOR 1)
set (CPPZIP_VERSION_MINOR 0)
set (CPPZIP_VERSION_PATCH 2)
set (CPPZIP_VERSION_BUILD 3)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
set(LIB_DIR lib${LIB_SUFFIX})
if(NOT DOC_INSTALL_DIR)
set(DOC_INSTALL_DIR "" CACHE FILEPATH "Documentation install directory")
endif()
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -fPIC -Wextra")
endif(CMAKE_COMPILER_IS_GNUCXX)
if(MSVC)
add_definitions(/DBOOST_ALL_DYN_LINK)
add_definitions(/DBOOST_LIB_DIAGNOSTIC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif(MSVC)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
MESSAGE(STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY: " ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
MESSAGE(STATUS "LIBRARY_OUTPUT_PATH: " ${LIBRARY_OUTPUT_PATH})
MESSAGE(STATUS "CMAKE_LIBRARY_PATH: " ${CMAKE_LIBRARY_PATH})
#debugging: enables this snippet to print all known variables...
# get_cmake_property(_variableNames VARIABLES)
# foreach (_variableName ${_variableNames})
# message(STATUS "${_variableName}=${${_variableName}}")
# endforeach()
#####################################
# External Dependencies for CppZip
#####################################
#zlib
find_package(ZLIB 1.2.8)
if(NOT ZLIB_FOUND)
MESSAGE(STATUS "Use zlib provided by cppzip, because it is not found on the system.")
add_subdirectory(src/external/zlib)
set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/external/zlib)
set(ZLIB_LIBRARY zlib)
find_package(ZLIB 1.2.8 REQUIRED)
set(USE_BUILD_IN_ZLIB 1)
endif()
#minizip: currently, minizip sources are included in CppZip lib directly
#add_subdirectory(src/CppZip/minizip)
#Boost stuff
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.53.0 REQUIRED COMPONENTS system filesystem signals)
#CppZip
add_subdirectory(src/CppZip)
#Documentation with Doxygen
#add_subdirectory(doc)
#####################################
# External additionally dependencies for CppZipTest
#####################################
if(BUILD_TESTS)
#Boost
find_package(Boost 1.53.0 COMPONENTS system filesystem signals timer)
MESSAGE(STATUS "CPPUNIT_INCLUDE_DIR: " ${CPPUNIT_INCLUDE_DIR})
MESSAGE(STATUS "CPPUNIT_LIBRARY: " ${CPPUNIT_LIBRARY})
#CppUnit
find_package(CppUnit REQUIRED)
enable_testing()
option(BUILD_TESTS "Build unit tests" ON)
#CppZipTest
add_subdirectory(src/CppZipTest)
endif()
#####################################
# Installing files: output
#####################################