Skip to content

Commit ba15da0

Browse files
author
Rainer Poisel
committed
CPack instructions added; tests made optional
1 parent 9f4f9a0 commit ba15da0

File tree

2 files changed

+37
-12
lines changed

2 files changed

+37
-12
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.swp

CMakeLists.txt

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
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

58
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
69
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
@@ -69,8 +72,8 @@ if (WPCP_BUILD_LIBWEBSOCKETS)
6972
list(APPEND LIBWEBSOCKETS_LIBRARIES ${OPENSSL_LIBRARIES})
7073
else ()
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 ()
7578
endif ()
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
173176
set_property(TARGET wpcp PROPERTY COMPILE_DEFINITIONS WPCP_EXPORTS)
174177
set_property(TARGET wpcp PROPERTY PUBLIC_HEADER ${WPCP_PUBLIC_HEADERS})
175178
target_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

178186
add_library(wpcp-lws SHARED ${WPCP_LWS_PUBLIC_HEADERS} ${WPCP_LWS_SOURCES})
179187
set_property(TARGET wpcp-lws PROPERTY COMPILE_DEFINITIONS WPCP_LWS_EXPORTS)
@@ -182,17 +190,24 @@ target_link_libraries(wpcp-lws wpcp ${LIBWEBSOCKETS_LIBRARIES})
182190
if (NOT WIN32)
183191
target_link_libraries(wpcp-lws pthread)
184192
endif ()
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

187200
add_executable(example ${EXAMPLE_SOURCES})
188201
target_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

198213
find_program(GENHTML_EXECUTABLE NAMES genhtml)
@@ -222,3 +237,12 @@ if (CPPCHECK_EXECUTABLE AND CPPCHECKHTMLREPORT_EXECUTABLE)
222237
else ()
223238
message(STATUS "Can't run cppchek: cppcheck and/or cppcheck-htmlreport was not found")
224239
endif ()
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

Comments
 (0)