1- cmake_minimum_required (VERSION 2.8 )
1+ cmake_minimum_required (VERSION 3.2 )
22
3- project (libwpcp C)
3+ project (libwpcp LANGUAGES C)
4+ set (libwpcp_VERSION_MAJOR 0)
5+ set (libwpcp_VERSION_MINOR 9)
6+ set (libwpcp_VERSION_PATCH 0)
47
58set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR} /cmake/" )
69set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
@@ -69,8 +72,8 @@ if (WPCP_BUILD_LIBWEBSOCKETS)
6972 list (APPEND LIBWEBSOCKETS_LIBRARIES ${OPENSSL_LIBRARIES} )
7073else ()
7174 find_package (LibWebSockets)
72- if (NOT LIBWEBSOCKETS_FOUND)
73- message (FATAL_ERROR "Call cmake with '-DWPCP_BUILD_LIBWEBSOCKETS=ON' to build LibWebSockets as ExternalProject ." )
75+ if (NOT LIBWEBSOCKETS_FOUND AND ( NOT LIBWEBSOCKETS_INCLUDE_DIRS OR NOT LIBWEBSOCKETS_LIBRARIES) )
76+ message (FATAL_ERROR "libwebsockets could not be found ." )
7477 endif ()
7578endif ()
7679
@@ -97,7 +100,7 @@ else ()
97100 find_package (Check)
98101 find_package (Subunit)
99102 if (NOT CHECK_FOUND)
100- message (FATAL_ERROR "Call cmake with '-DWPCP_BUILD_CHECK=ON' to build Check as ExternalProject." )
103+ message (WARNING "Call cmake with '-DWPCP_BUILD_CHECK=ON' to build Check as ExternalProject. Not performing tests ." )
101104 endif ()
102105 if (SUBUNIT_FOUND)
103106 list (APPEND CHECK_LIBRARIES ${SUBUNIT_LIBRARIES} )
@@ -173,7 +176,12 @@ add_library(wpcp SHARED ${WPCP_PUBLIC_HEADERS} ${WPCP_PRIVATE_HEADERS} ${WPCP_SO
173176set_property (TARGET wpcp PROPERTY COMPILE_DEFINITIONS WPCP_EXPORTS)
174177set_property (TARGET wpcp PROPERTY PUBLIC_HEADER ${WPCP_PUBLIC_HEADERS} )
175178target_link_libraries (wpcp ${WPCP_LIBRARIES} )
176- install (TARGETS wpcp DESTINATION lib)
179+ install (TARGETS wpcp
180+ RUNTIME DESTINATION bin
181+ LIBRARY DESTINATION lib
182+ ARCHIVE DESTINATION lib
183+ PUBLIC_HEADER DESTINATION include
184+ )
177185
178186add_library (wpcp-lws SHARED ${WPCP_LWS_PUBLIC_HEADERS} ${WPCP_LWS_SOURCES} )
179187set_property (TARGET wpcp-lws PROPERTY COMPILE_DEFINITIONS WPCP_LWS_EXPORTS)
@@ -182,17 +190,24 @@ target_link_libraries(wpcp-lws wpcp ${LIBWEBSOCKETS_LIBRARIES})
182190if (NOT WIN32 )
183191 target_link_libraries (wpcp-lws pthread)
184192endif ()
185- install (TARGETS wpcp-lws DESTINATION lib)
193+ install (TARGETS wpcp-lws
194+ RUNTIME DESTINATION bin
195+ LIBRARY DESTINATION lib
196+ ARCHIVE DESTINATION lib
197+ PUBLIC_HEADER DESTINATION include
198+ )
186199
187200add_executable (example ${EXAMPLE_SOURCES} )
188201target_link_libraries (example wpcp-lws)
189202
190- add_executable (test_wpcp ${WPCP_TEST_FILES} ${WPCP_PUBLIC_HEADERS} ${WPCP_PRIVATE_HEADERS} ${WPCP_SOURCES} )
191- set_property (TARGET test_wpcp PROPERTY COMPILE_DEFINITIONS WPCP_STATIC WPCP_LWS_STATIC WPCP_USE_CUSTOM_ALLOCATOR)
192- target_link_libraries (test_wpcp ${CHECK_LIBRARIES} ${WPCP_LIBRARIES} )
203+ if (CHECK_FOUND)
204+ add_executable (test_wpcp ${WPCP_TEST_FILES} ${WPCP_PUBLIC_HEADERS} ${WPCP_PRIVATE_HEADERS} ${WPCP_SOURCES} )
205+ set_property (TARGET test_wpcp PROPERTY COMPILE_DEFINITIONS WPCP_STATIC WPCP_LWS_STATIC WPCP_USE_CUSTOM_ALLOCATOR)
206+ target_link_libraries (test_wpcp ${CHECK_LIBRARIES} ${WPCP_LIBRARIES} )
193207
194- enable_testing ()
195- add_test (NAME wpcp COMMAND test_wpcp)
208+ enable_testing ()
209+ add_test (NAME wpcp COMMAND test_wpcp)
210+ endif ()
196211
197212
198213find_program (GENHTML_EXECUTABLE NAMES genhtml)
@@ -222,3 +237,12 @@ if (CPPCHECK_EXECUTABLE AND CPPCHECKHTMLREPORT_EXECUTABLE)
222237else ()
223238 message (STATUS "Can't run cppchek: cppcheck and/or cppcheck-htmlreport was not found" )
224239endif ()
240+
241+ ### packaging settings
242+ if (CMAKE_SYSTEM_NAME MATCHES "Windows" )
243+ set (CPACK_GENERATOR "ZIP" )
244+ else ()
245+ set (CPACK_GENERATOR "TGZ" )
246+ endif ()
247+ set (CPACK_PACKAGE_FILE_NAME libwpcp-${libwpcp_VERSION_MAJOR} .${libwpcp_VERSION_MINOR} .${libwpcp_VERSION_PATCH} )
248+ include (CPack)
0 commit comments