forked from Exiv2/exiv2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
144 lines (124 loc) · 4.8 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
142
143
144
# CMakeLists.txt for exiv2 library sample applications
set( SAMPLES
addmoddel.cpp
convert-test.cpp
easyaccess-test.cpp
exifcomment.cpp
exifdata-test.cpp
exifdata.cpp
exifprint.cpp
exifvalue.cpp
ini-test.cpp
iotest.cpp
iptceasy.cpp
iptcprint.cpp
iptctest.cpp
key-test.cpp
largeiptc-test.cpp
mmap-test.cpp
mrwthumb.cpp
prevtest.cpp
stringto-test.cpp
taglist.cpp
tiff-test.cpp
werror-test.cpp
write-test.cpp
write2-test.cpp
xmpparse.cpp
xmpparser-test.cpp
xmpprint.cpp
xmpsample.cpp
xmpdump.cpp
)
##
# build samples AND add them to the APPLICATIONS list
foreach(entry ${SAMPLES})
string( REPLACE ".cpp" "" target ${entry})
add_executable( ${target} ${target}.cpp )
set_target_properties(${target} PROPERTIES
COMPILE_FLAGS ${EXTRA_COMPILE_FLAGS})
list(APPEND APPLICATIONS ${target})
target_include_directories(${target} PRIVATE ${CMAKE_SOURCE_DIR}/src) # To find unused.h
if ( NOT ${target} MATCHES ".*test.*") # don't install tests
install( TARGETS ${target} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
endforeach()
###################################
add_library( exiv2-ql SHARED exiv2-ql.cpp)
set_target_properties(exiv2-ql PROPERTIES
COMPILE_FLAGS ${EXTRA_COMPILE_FLAGS})
list(APPEND APPLICATIONS exiv2-ql)
target_include_directories(exiv2-ql PRIVATE ${CMAKE_SOURCE_DIR}/src) # To find unused.h
install( TARGETS exiv2-ql RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
###################################
if (MSVC)
link_directories(${CMAKE_INSTALL_PREFIX}/lib)
endif()
add_executable( getopt-test getopt-test.cpp ../src/utils.cpp ../src/getopt.cpp)
list(APPEND APPLICATIONS getopt-test)
target_include_directories(getopt-test PRIVATE ${CMAKE_SOURCE_DIR}/src) # To find utils.hpp
add_executable( metacopy metacopy.cpp ../src/utils.cpp ../src/getopt.cpp)
list(APPEND APPLICATIONS metacopy)
target_include_directories(metacopy PRIVATE ${CMAKE_SOURCE_DIR}/src) # To find utils.hpp
add_executable( path-test path-test.cpp ../src/utils.cpp ../src/getopt.cpp)
list(APPEND APPLICATIONS path-test)
set_target_properties( path-test PROPERTIES OUTPUT_NAME path-test )
target_include_directories(path-test PRIVATE ${CMAKE_SOURCE_DIR}/src) # To find utils.hpp
add_executable( exiv2json exiv2json.cpp Jzon.cpp Jzon.h)
list(APPEND APPLICATIONS exiv2json)
install( TARGETS metacopy exiv2json RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
if( EXPAT_FOUND )
add_executable( geotag geotag.cpp)
list(APPEND APPLICATIONS geotag)
target_link_libraries(geotag
PRIVATE
exiv2-xmp
${EXPAT_LIBRARIES}
)
target_include_directories(geotag PRIVATE ${CMAKE_BINARY_DIR}) # exv_conf.h
target_include_directories(geotag PRIVATE ${CMAKE_SOURCE_DIR}/include) # <exiv2/exiv2.hpp>
target_include_directories(geotag PRIVATE ${EXPAT_INCLUDE_DIR})
target_include_directories(geotag PRIVATE ${CMAKE_SOURCE_DIR}/src) # To find unused.h
if (WIN32)
target_compile_definitions(geotag PRIVATE XML_STATIC)
endif()
if (MSVC)
set_target_properties(geotag PROPERTIES LINK_FLAGS "/ignore:4099")
endif()
install( TARGETS geotag RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
# ******************************************************************************
# connection test application
add_executable(conntest conntest.cpp)
list(APPEND APPLICATIONS conntest)
if (EXIV2_ENABLE_WEBREADY)
if( EXIV2_ENABLE_CURL )
target_include_directories(conntest SYSTEM PRIVATE ${CURL_INCLUDE_DIR} )
target_link_libraries(conntest PRIVATE ${CURL_LIBRARIES})
if (USING_CONAN)
target_compile_definitions(conntest PRIVATE ${CONAN_COMPILE_DEFINITIONS_LIBCURL})
target_link_libraries(conntest PRIVATE ${CONAN_EXE_LINKER_FLAGS_LIBCURL})
if ( MSVC )
target_link_libraries(conntest PRIVATE Crypt32 Ws2_32 ${CURL_LIBRARIES})
elseif (NOT APPLE)
target_link_libraries(conntest PRIVATE CONAN_PKG::OpenSSL)
endif()
endif()
endif()
endif()
# ******************************************************************************
# remotetest application
add_executable(remotetest remotetest.cpp)
list(APPEND APPLICATIONS remotetest)
# ******************************************************************************
foreach(application ${APPLICATIONS})
target_link_libraries(${application} PRIVATE exiv2lib)
if( EXIV2_ENABLE_PNG )
target_link_libraries(${application} PRIVATE ${ZLIB_LIBRARIES} )
if (MSVC)
set_target_properties(${application} PROPERTIES LINK_FLAGS "/ignore:4099") # Ignore missing PDBs
endif()
endif()
endforeach()
# That's all Folks!
##