forked from spring/pr-downloader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
114 lines (94 loc) · 3.79 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
108
109
110
111
112
113
cmake_minimum_required(VERSION 2.6.3)
project(pr-downloader)
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release CACHE STRING
"Choose the type of build, options are: None DEBUG RELEASE."
FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
IF(CMAKE_BUILD_TYPE MATCHES "DEBUG")
add_definitions("-DDEBUG")
endif()
SET(CMAKE_MODULES_DOWNLOADER "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_MODULES_DOWNLOADER}")
INCLUDE(UtilGit)
if (GIT_FOUND)
Git_Util_Describe(PR_DOWNLOADER_VERSION "${CMAKE_CURRENT_SOURCE_DIR}/src" "*")
endif()
# Version couldn't be detected, we guess its compiled from tarball
if("${PR_DOWNLOADER_VERSION}" STREQUAL "")
SET(PR_DOWNLOADER_VERSION "tarball")
endif()
OPTION(PRD_LINK_STATIC "link pr-downloader.exe static or dynamic" ON)
OPTION(PRD_DEVELOP_FILES "install development files (header, libspringdownloader.pc)" OFF)
OPTION(PRD_DO_INSTALL "install files" ON)
OPTION(PRD_ARCHIVE_SUPPORT "enable archive support" ON)
OPTION(PRD_CLEAR_COMPILER_FLAGS "clear all compiler flags" OFF)
if(PRD_CLEAR_COMPILER_FLAGS)
SET(CMAKE_CXX_FLAGS "")
SET(CMAKE_C_FLAGS "")
SET(CMAKE_EXE_LINKER_FLAGS "")
SET(CMAKE_MODULE_LINKER_FLAGS "")
SET(CMAKE_SHARED_LINKER_FLAGS "")
endif()
MESSAGE(STATUS "Version ${PR_DOWNLOADER_VERSION}")
if (MINGW)
if(NOT DEFINED ${MINGWLIBS})
set(MINGWLIBS "${CMAKE_SOURCE_DIR}/mingwlibs" CACHE PATH "Location of the mingwlibs package")
endif()
if(NOT EXISTS "${MINGWLIBS}" OR NOT IS_DIRECTORY "${MINGWLIBS}")
MESSAGE(WARNING "MINGWLIBS is not a valid directory")
endif ()
include_directories(${MINGWLIBS}/include)
include_directories("${CMAKE_FIND_ROOT_PATH}/include")
if (PRD_LINK_STATIC)
Set(LD_FLAGS "-static-libstdc++ -static-libgcc")
Set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LD_FLAGS}")
Set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LD_FLAGS}")
endif()
set(CMAKE_LIBRARY_PATH ${MINGWLIBS}/lib)
set(CMAKE_PREFIX_PATH ${MINGWLIBS})
set(CMAKE_FIND_ROOT_PATH ${MINGWLIBS} ${CMAKE_FIND_ROOT_PATH})
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SHARED_LIBRARY_PREFIX "")
set(CMAKE_SHARED_MODULE_PREFIX "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -g -DWIN32 -D_WINDOWS -DCURL_STATICLIB")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2 -g -DWIN32 -D_WINDOWS -DCURL_STATICLIB")
set (PRD_BINDIR "." CACHE PATH "Where to install binaries" )
set (PRD_LIBDIR "." CACHE PATH "Where to install libraries" )
set (PRD_INCLUDE_DIR "include/spring/" CACHE PATH "Where to install headers" )
else (MINGW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O0 -g -fPIC")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O0 -g -fPIC")
#set(CMAKE_SKIP_BUILD_RPATH FALSE)
#set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
set (PRD_BINDIR "bin" CACHE PATH "Where to install binaries" )
set (PRD_LIBDIR "lib" CACHE PATH "Where to install libraries" )
set (PRD_INCLUDE_DIR "include/spring/" CACHE PATH "Where to install headers" )
#set(CMAKE_INSTALL_RPATH "${PRD_LIBDIR}")
endif (MINGW)
if(WIN32)
add_definitions(-DUNICODE -D_UNICODE)
endif()
if (PREFER_STATIC_LIBS)
#curl dependency
FIND_PACKAGE_STATIC(OpenSSL REQUIRED)
FIND_PACKAGE_STATIC(CURL REQUIRED)
FIND_PACKAGE_STATIC(ZLIB REQUIRED)
else()
find_package(CURL REQUIRED)
find_package(ZLIB REQUIRED)
endif()
#compile fix for soap (springlobby defines this)
remove_definitions(-DHAVE_CONFIG_H)
include_directories(SYSTEM ${CURL_INCLUDE_DIR})
include_directories(SYSTEM ${ZLIB_INCLUDE_DIR})
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src")
# MINIZIP_FOUND is used in lib & FileSystem
FIND_PACKAGE(MiniZip)
if(NOT MINIZIP_FOUND)
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/src/lib")
endif()
subdirs(src)
ENABLE_TESTING()
Add_Subdirectory(test)