forked from trufanov-nok/c44-freeimage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
141 lines (120 loc) · 4.4 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9...3.13)
IF(POLICY CMP0003)
# Allow linking with full library path instead of -L/path -llibrary
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF()
SET(
CMAKE_USER_MAKE_RULES_OVERRIDE
"${CMAKE_SOURCE_DIR}/cmake/default_cflags.cmake"
)
SET(
CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
"${CMAKE_SOURCE_DIR}/cmake/default_cxxflags.cmake"
)
PROJECT("c44-freeimage")
SET(CMAKE_PROJECT_VERSION "3.5.28")
SET(CMAKE_HOMEPAGE_URL "https://github.com/trufanov-nok/c44-freeimage")
SET(CMAKE_BUILD_TYPE "Release") # builddeb won't compile with "None"
# should point to DjVuLibre sources
SET(djvu_libre_sources_path "./djvulibre/")
SET(libdjvu "${djvu_libre_sources_path}libdjvu/" )
# For config.h
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
INCLUDE(CheckIncludeFile)
INCLUDE(cmake/FindPthreads.cmake)
INCLUDE(cmake/SetDefaultBuildType.cmake)
INCLUDE(cmake/SetDefaultGccFlags.cmake)
SET_DEFAULT_BUILD_TYPE(Release)
IF(CMAKE_COMPILER_IS_GNUCC)
SET_DEFAULT_GCC_FLAGS()
ENDIF(CMAKE_COMPILER_IS_GNUCC)
IF(UNIX)
FindPthreads()
IF(PTHREADS_FOUND)
ADD_DEFINITIONS(${PTHREADS_CFLAGS})
LINK_LIBRARIES(${PTHREADS_LIBS})
add_definitions(-DHAVE_PTHREAD)
ELSE(PTHREADS_FOUND)
MESSAGE(
FATAL_ERROR
"Could not detect threading flags.\n"
"Try specifying them manually in PTHREADS_CFLAGS and PTHREADS_LIBS."
)
ENDIF(PTHREADS_FOUND)
ELSEIF(WIN32)
ADD_DEFINITIONS(-DNOMINMAX)
ENDIF(UNIX)
CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
IF(NOT HAVE_STDINT_H)
CONFIGURE_FILE(compat/pstdint.h "${CMAKE_CURRENT_BINARY_DIR}/stdint.h" COPYONLY)
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
ELSE(NOT HAVE_STDINT_H)
FILE(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/stdint.h")
add_definitions(-DHAVE_STDINT_H)
ENDIF(NOT HAVE_STDINT_H)
#some required params which aren't checked in hope your system have them
add_definitions(-DHAVE_STDINCLUDES -DHAS_WCHAR -DHAVE_MBSTATE_T -DHAVE_NAMESPACES)
FIND_PATH(
FI_INCLUDE_DIR FreeImage.h
PATHS /usr/local/include /usr/include
DOC "Path to libfreeimage headers."
)
IF(NOT FI_INCLUDE_DIR)
MESSAGE(
FATAL_ERROR
"Could not find libfreeimage headers.\n"
"You may need to install a package named libfreeimage-dev or similarly."
)
ENDIF()
INCLUDE_DIRECTORIES("${FI_INCLUDE_DIR}"
"${djvu_libre_sources_path}libdjvu/" # should contain GString.h etc.
"${djvu_libre_sources_path}tools/" # should contain common.h
)
FIND_LIBRARY(
FI_LIBRARY freeimage
PATHS /usr/local/lib /usr/lib
DOC "Path to libfreeimage library."
)
IF(NOT FI_LIBRARY)
MESSAGE(
FATAL_ERROR
"Could not find libfreeimage library.\n"
"You may need to install a package named libfreeimage-dev or similarly."
)
ENDIF()
SET(
djvu_libre_sources
${libdjvu}Arrays.cpp ${libdjvu}ByteStream.cpp
${libdjvu}DjVuFile.cpp ${libdjvu}DjVuInfo.cpp
${libdjvu}DjVuMessage.cpp ${libdjvu}DjVuMessageLite.cpp
${libdjvu}GBitmap.cpp ${libdjvu}GContainer.cpp ${libdjvu}GException.cpp
${libdjvu}GOS.cpp ${libdjvu}GPixmap.cpp ${libdjvu}GRect.cpp ${libdjvu}GSmartPointer.cpp
${libdjvu}GString.cpp ${libdjvu}GThreads.cpp ${libdjvu}GURL.cpp ${libdjvu}GUnicode.cpp
${libdjvu}IFFByteStream.cpp ${libdjvu}IW44EncodeCodec.cpp ${libdjvu}IW44Image.cpp
${libdjvu}JB2EncodeCodec.cpp
${libdjvu}MMX.cpp ${libdjvu}UnicodeByteStream.cpp ${libdjvu}XMLParser.cpp ${libdjvu}XMLTags.cpp
${libdjvu}ZPCodec.cpp
)
SET(
sources
src/c44-fi.cpp
)
IF (WIN32)
ADD_EXECUTABLE( c44-fi WIN32 ${sources} ${djvu_libre_sources})
add_definitions(-D_WIN32)
ELSEIF(APPLE)
ADD_EXECUTABLE( c44-fi MACOSX_BUNDLE ${sources} ${djvu_libre_sources})
add_definitions(-Dmacintosh)
ELSE()
ADD_EXECUTABLE( c44-fi ${sources} ${djvu_libre_sources})
add_definitions(-DUNIX)
ENDIF()
TARGET_LINK_LIBRARIES(
c44-fi ${FI_LIBRARY} ${LIBRE_LIBRARY}
)
IF(APPLE)
INSTALL(TARGETS c44-fi BUNDLE DESTINATION . RUNTIME DESTINATION bin)
ELSE(APPLE)
INSTALL(TARGETS c44-fi RUNTIME DESTINATION bin)
ENDIF(APPLE)
ADD_SUBDIRECTORY(packaging)