2
2
# Copyright (C) 2019-2023 Intel Corporation
3
3
cmake_minimum_required (VERSION 3.5)
4
4
include (version .cmake)
5
- project (safestring
6
- VERSION ${SAFEC_VERSION_STRING}
7
- DESCRIPTION "Safe C string library"
8
- )
9
5
10
- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} " )
11
- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} " )
12
- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} " )
13
- option (BUILD_SHARED_LIBS "Build using shared libraries" ON )
6
+ project (safestring VERSION ${SAFEC_VERSION_STRING}
7
+ LANGUAGES C
8
+ DESCRIPTION "Safe C string library" )
14
9
15
- option (BUILD_UNITTESTS "Build also project unit-tests" OFF )
10
+ #set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
11
+ #set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
12
+ #set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
16
13
14
+ option (BUILD_SHARED_LIBS "Build using shared libraries" ON )
15
+ option (BUILD_UNITTESTS "Build also project unit-tests" OFF )
17
16
if (NOT DEFINED BUILD_OPT_DEFAULT)
18
17
option (BUILD_OPT_DEFAULT "Build option default" ON )
19
18
endif ()
@@ -156,14 +155,10 @@ set(HEADER_FILES include/safe_lib_errno.h
156
155
include /snprintf_s.h)
157
156
158
157
include_directories (include )
159
-
160
- # conains all the objects individual files *.o
161
158
add_library (${PROJECT_NAME} _objlib OBJECT ${SOURCES} )
162
159
set_target_properties (${PROJECT_NAME} _objlib
163
160
PROPERTIES POSITION_INDEPENDENT_CODE ON )
164
-
165
161
target_compile_definitions (${PROJECT_NAME} _objlib PRIVATE -DSTDC_HEADERS)
166
-
167
162
target_compile_options (${PROJECT_NAME} _objlib
168
163
PRIVATE -Wno-unknown-pragmas -Wno-unused-parameter)
169
164
if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 7)
@@ -188,7 +183,6 @@ if(CMAKE_COMPILER_IS_GNUCC AND
188
183
target_compile_options (${PROJECT_NAME} _objlib PRIVATE -mmitigate-rop)
189
184
endif ()
190
185
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack -z relro -z now" )
191
-
192
186
option (BUILD_ERROR_ON_WARNING "Fail compilation on warning" OFF )
193
187
194
188
if (BUILD_ERROR_ON_WARNING)
@@ -197,30 +191,30 @@ endif()
197
191
198
192
target_compile_options (${PROJECT_NAME} _objlib PRIVATE $<$<CONFIG:RELEASE>:-s>)
199
193
200
- # from HEAD
201
- #add_library(${PROJECT_NAME}_shared SHARED $<TARGET_OBJECTS:${PROJECT_NAME}_objlib>)
202
- #add_library(${PROJECT_NAME}_static STATIC $<TARGET_OBJECTS:${PROJECT_NAME}_objlib>)
194
+ add_library (${PROJECT_NAME} _shared SHARED $<TARGET_OBJECTS:${PROJECT_NAME} _objlib>)
195
+ set_target_properties (${PROJECT_NAME} _shared PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
196
+ set_target_properties (${PROJECT_NAME} _shared PROPERTIES VERSION ${SAFEC_VERSION_STRING} SOVERSION 1)
197
+ add_library (${PROJECT_NAME} _static STATIC $<TARGET_OBJECTS:${PROJECT_NAME} _objlib>)
198
+ set_target_properties (${PROJECT_NAME} _static PROPERTIES OUTPUT_NAME ${PROJECT_NAME} )
199
+
200
+ #add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:${PROJECT_NAME}_objlib>)
201
+ #add_library(${PROJECT_NAME} STATIC $<TARGET_OBJECTS:${PROJECT_NAME}_objlib>)
202
+ #add_library(${PROJECT_NAME} ${SOURCES})
203
203
204
- #target_include_directories(${PROJECT_NAME}_shared PUBLIC
204
+ #target_include_directories(${PROJECT_NAME} PUBLIC
205
205
# $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
206
206
# $<INSTALL_INTERFACE:include>
207
207
#)
208
208
#target_include_directories(${PROJECT_NAME}_static PUBLIC include)
209
- #=======
210
- #add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:${PROJECT_NAME}_objlib>)
211
- #add_library(${PROJECT_NAME} STATIC $<TARGET_OBJECTS:${PROJECT_NAME}_objlib>)
212
- add_library (${PROJECT_NAME} ${SOURCES} )
213
- #set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER ${HEADER_FILES})
214
209
#target_include_directories(${PROJECT_NAME}_shared PUBLIC include)
215
210
#target_include_directories(${PROJECT_NAME}_static PUBLIC include)
216
211
#target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
217
- target_include_directories (${PROJECT_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} /include )
218
- install (TARGETS ${PROJECT_NAME}
219
- LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} /lib)
220
- install (FILES ${HEADER_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX} /include /${PROJECT_NAME} )
221
-
222
- set_target_properties (${PROJECT_NAME} _shared PROPERTIES VERSION ${SAFEC_VERSION_STRING} )
223
- set_target_properties (${PROJECT_NAME} _static PROPERTIES VERSION ${SAFEC_VERSION_STRING} )
212
+ #target_include_directories(${PROJECT_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include)
213
+ #target_include_directories(${PROJECT_NAME} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include)
214
+ #set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER ${HEADER_FILES})
215
+ #set_target_properties(${PROJECT_NAME}_shared PROPERTIES VERSION ${SAFEC_VERSION_STRING})
216
+ #set_target_properties(${PROJECT_NAME}_static PROPERTIES VERSION ${SAFEC_VERSION_STRING})
217
+ #set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${SAFEC_VERSION_STRING})
224
218
225
219
if (BUILD_UNITTESTS)
226
220
add_subdirectory (unittests)
@@ -235,18 +229,18 @@ set(PUBLIC_HEADERS
235
229
include /safe_types.h
236
230
include /snprintf_s.h
237
231
)
232
+ #set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}")
238
233
239
- set_target_properties (${PROJECT_NAME} _shared PROPERTIES
240
- PUBLIC_HEADER "${PUBLIC_HEADERS} "
241
- )
242
-
243
- install (TARGETS ${PROJECT_NAME} _shared EXPORT ${PROJECT_NAME} Config
234
+ #install(TARGETS ${PROJECT_NAME}
235
+ # LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
236
+ #install(FILES ${HEADER_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME})
237
+ install (TARGETS ${PROJECT_NAME} _shared ${PROJECT_NAME} _static
244
238
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
239
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
245
240
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
246
241
)
247
242
248
- install (EXPORT ${PROJECT_NAME} Config DESTINATION share/${PROJECT_NAME} /cmake)
249
-
243
+ #install(EXPORT ${PROJECT_NAME}Config DESTINATION share/${PROJECT_NAME}/cmake)
250
244
export (TARGETS ${PROJECT_NAME} _shared FILE ${PROJECT_NAME} Config.cmake)
251
245
252
246
# Debian package information for CPack
0 commit comments