Imported Upstream version 1.2.0
[platform/upstream/libzip.git] / lib / CMakeLists.txt
1 INCLUDE(CheckFunctionExists)
2
3 INSTALL(FILES zip.h DESTINATION include)
4
5 # from http://www.cmake.org/Wiki/CMakeMacroLibtoolFile
6 MACRO(GET_TARGET_PROPERTY_WITH_DEFAULT _variable _target _property _default_value)
7   
8   GET_TARGET_PROPERTY (${_variable} ${_target} ${_property})
9   IF (${_variable} STREQUAL NOTFOUND)
10     SET (${_variable} ${_default_value})
11   ENDIF (${_variable} STREQUAL NOTFOUND)
12   
13 ENDMACRO (GET_TARGET_PROPERTY_WITH_DEFAULT)
14   
15 MACRO(CREATE_LIBTOOL_FILE _target _install_DIR)
16   GET_TARGET_PROPERTY(_target_location ${_target} LOCATION)
17   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_static_lib ${_target} STATIC_LIB "")
18   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dependency_libs ${_target} LT_DEPENDENCY_LIBS "")
19   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_current ${_target} LT_VERSION_CURRENT 4)
20   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_revision ${_target} LT_VERSION_REVISION 0)
21   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_age ${_target} LT_VERSION_AGE 0)
22   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_installed ${_target} LT_INSTALLED yes)
23   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_shouldnotlink ${_target} LT_SHOULDNOTLINK yes)
24   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlopen ${_target} LT_DLOPEN "")
25   GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlpreopen ${_target} LT_DLPREOPEN "")
26   GET_FILENAME_COMPONENT(_laname ${_target_location} NAME_WE)
27   GET_FILENAME_COMPONENT(_soname ${_target_location} NAME)
28   SET(_laname ${_laname}.la)
29   FILE(WRITE ${_laname} "# ${_laname} - a libtool library file, generated by cmake \n")
30   FILE(APPEND ${_laname} "# The name that we can dlopen(3).\n")
31   FILE(APPEND ${_laname} "dlname='${_soname}'\n")
32   FILE(APPEND ${_laname} "# Names of this library\n")
33   FILE(APPEND ${_laname} "library_names='${_soname}.${_target_current}.${_target_age}.${_target_revision} ${_soname}.${_target_current} ${_soname}'\n")
34   FILE(APPEND ${_laname} "# The name of the static archive\n")
35   FILE(APPEND ${_laname} "old_library='${_target_static_lib}'\n")
36   FILE(APPEND ${_laname} "# Libraries that this one depends upon.\n")
37   FILE(APPEND ${_laname} "dependency_libs='${_target_dependency_libs}'\n")
38   FILE(APPEND ${_laname} "# Version information.\n")
39   FILE(APPEND ${_laname} "current=${_target_current}\n")
40   FILE(APPEND ${_laname} "age=${_target_age}\n")
41   FILE(APPEND ${_laname} "revision=${_target_revision}\n")
42   FILE(APPEND ${_laname} "# Is this an already installed library?\n")
43   FILE(APPEND ${_laname} "installed=${_target_installed}\n")
44   FILE(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\n")
45   FILE(APPEND ${_laname} "shouldnotlink=${_target_shouldnotlink}\n")
46   FILE(APPEND ${_laname} "# Files to dlopen/dlpreopen\n")
47   FILE(APPEND ${_laname} "dlopen='${_target_dlopen}'\n")
48   FILE(APPEND ${_laname} "dlpreopen='${_target_dlpreopen}'\n")
49   FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n")
50   FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}/${_install_DIR}'\n")
51   INSTALL( FILES ${_laname} ${_soname}
52     DESTINATION ${CMAKE_INSTALL_PREFIX}${_install_DIR})
53 ENDMACRO(CREATE_LIBTOOL_FILE)
54  
55 SET(LIBZIP_SOURCES
56   gladman-fcrypt.c
57   zip_add.c
58   zip_add_dir.c
59   zip_add_entry.c
60   zip_buffer.c
61   zip_close.c
62   zip_delete.c
63   zip_dir_add.c
64   zip_dirent.c
65   zip_discard.c
66   zip_entry.c
67   zip_err_str.c
68   zip_error.c
69   zip_error_clear.c
70   zip_error_get.c
71   zip_error_get_sys_type.c
72   zip_error_strerror.c
73   zip_error_to_str.c
74   zip_extra_field.c
75   zip_extra_field_api.c
76   zip_fclose.c
77   zip_fdopen.c
78   zip_file_add.c
79   zip_file_error_clear.c
80   zip_file_error_get.c
81   zip_file_get_comment.c
82   zip_file_get_external_attributes.c
83   zip_file_get_offset.c
84   zip_file_rename.c
85   zip_file_replace.c
86   zip_file_set_comment.c
87   zip_file_set_encryption.c
88   zip_file_set_external_attributes.c
89   zip_file_set_mtime.c
90   zip_file_strerror.c
91   zip_filerange_crc.c
92   zip_fopen.c
93   zip_fopen_encrypted.c
94   zip_fopen_index.c
95   zip_fopen_index_encrypted.c
96   zip_fread.c
97   zip_fseek.c
98   zip_get_archive_comment.c
99   zip_get_archive_flag.c
100   zip_get_compression_implementation.c
101   zip_get_encryption_implementation.c
102   zip_get_file_comment.c
103   zip_get_name.c
104   zip_get_num_entries.c
105   zip_get_num_files.c
106   zip_hash.c
107   zip_io_util.c
108   zip_memdup.c
109   zip_name_locate.c
110   zip_new.c
111   zip_open.c
112   zip_rename.c
113   zip_replace.c
114   zip_set_archive_comment.c
115   zip_set_archive_flag.c
116   zip_set_default_password.c
117   zip_set_file_comment.c
118   zip_set_file_compression.c
119   zip_set_name.c
120   zip_source_begin_write.c
121   zip_source_buffer.c
122   zip_source_call.c
123   zip_source_close.c
124   zip_source_commit_write.c
125   zip_source_crc.c
126   zip_source_deflate.c
127   zip_source_error.c
128   zip_source_filep.c
129   zip_source_free.c
130   zip_source_function.c
131   zip_source_is_deleted.c
132   zip_source_layered.c
133   zip_source_open.c
134   zip_source_pkware.c
135   zip_source_read.c
136   zip_source_remove.c
137   zip_source_rollback_write.c
138   zip_source_seek.c
139   zip_source_seek_write.c
140   zip_source_stat.c
141   zip_source_supports.c
142   zip_source_tell.c
143   zip_source_tell_write.c
144   zip_source_window.c
145   zip_source_winzip_aes_decode.c
146   zip_source_winzip_aes_encode.c
147   zip_source_write.c
148   zip_source_zip.c
149   zip_source_zip_new.c
150   zip_stat.c
151   zip_stat_index.c
152   zip_stat_init.c
153   zip_strerror.c
154   zip_string.c
155   zip_unchange.c
156   zip_unchange_all.c
157   zip_unchange_archive.c
158   zip_unchange_data.c
159   zip_utf-8.c
160 )
161
162 IF(WIN32)
163   SET(LIBZIP_OPSYS_FILES
164     zip_random_win32.c
165     zip_source_win32a.c
166     zip_source_win32handle.c
167     zip_source_win32utf8.c
168     zip_source_win32w.c
169   )
170 ELSE(WIN32)
171   SET(LIBZIP_OPSYS_FILES
172     zip_random_unix.c
173     zip_source_file.c
174   )
175 ENDIF(WIN32)
176
177 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
178   ${CMAKE_CURRENT_SOURCE_DIR}/gladman-fcrypt
179   ${CMAKE_CURRENT_BINARY_DIR}/..)
180
181 # TODO: distribute instead?
182 #ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zip_err_str.c
183 #  COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/make_zip_err_str.sh
184 #    ${CMAKE_CURRENT_SOURCE_DIR}/zip.h
185 #    ${CMAKE_CURRENT_BINARY_DIR}/zip_err_str.c
186 #  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/zip.h
187 #    ${CMAKE_CURRENT_SOURCE_DIR}/make_zip_err_str.sh
188 #)
189 CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP)
190 IF(NOT HAVE_MKSTEMP)
191   SET(LIBZIP_EXTRA_FILES mkstemp.c)
192 ENDIF(NOT HAVE_MKSTEMP)
193
194 ADD_LIBRARY(zip SHARED ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES})
195 SET_TARGET_PROPERTIES(zip PROPERTIES VERSION 3.0 SOVERSION 3 )
196 TARGET_LINK_LIBRARIES(zip ${ZLIB_LIBRARY})
197 INSTALL(TARGETS zip
198   RUNTIME DESTINATION bin
199   ARCHIVE DESTINATION lib
200   LIBRARY DESTINATION lib)
201 #CREATE_LIBTOOL_FILE(zip lib)
202
203 #ADD_LIBRARY(zipstatic STATIC ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPSYS_FILES})
204 #SET_TARGET_PROPERTIES(zipstatic PROPERTIES VERSION 3.0 SOVERSION 3 )
205 #TARGET_LINK_LIBRARIES(zipstatic ${ZLIB_LIBRARY})
206 #INSTALL(TARGETS zipstatic
207 #  RUNTIME DESTINATION bin
208 #  ARCHIVE DESTINATION lib
209 #  LIBRARY DESTINATION lib)