cmake: add export() and install(EXPORT) for easier packageability (#190)
* cmake: add export() and install(EXPORT) for easier packageability Enable the package to be more readily packageable as a system-wide install or as a third-party dependency to another CMake-base project This does not change CMake version requirements AFAICT * CMake: link-in OpenSSL::Crypto
This commit is contained in:
		@@ -144,6 +144,8 @@ add_library( ixwebsocket STATIC
 | 
				
			|||||||
    ${IXWEBSOCKET_HEADERS}
 | 
					    ${IXWEBSOCKET_HEADERS}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					add_library ( ixwebsocket::ixwebsocket ALIAS ixwebsocket )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (USE_TLS)
 | 
					if (USE_TLS)
 | 
				
			||||||
    target_compile_definitions(ixwebsocket PUBLIC IXWEBSOCKET_USE_TLS)
 | 
					    target_compile_definitions(ixwebsocket PUBLIC IXWEBSOCKET_USE_TLS)
 | 
				
			||||||
    if (USE_MBED_TLS)
 | 
					    if (USE_MBED_TLS)
 | 
				
			||||||
@@ -169,13 +171,11 @@ if (USE_TLS)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    # This OPENSSL_FOUND check is to help find a cmake manually configured OpenSSL
 | 
					    # This OPENSSL_FOUND check is to help find a cmake manually configured OpenSSL
 | 
				
			||||||
    if (NOT OPENSSL_FOUND)
 | 
					    if (NOT OPENSSL_FOUND)
 | 
				
			||||||
      find_package(OpenSSL REQUIRED)
 | 
						    include(FindOpenSSL)
 | 
				
			||||||
    endif()
 | 
					    endif()
 | 
				
			||||||
    message(STATUS "OpenSSL: " ${OPENSSL_VERSION})
 | 
					    message(STATUS "OpenSSL: " ${OPENSSL_VERSION})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    add_definitions(${OPENSSL_DEFINITIONS})
 | 
					    target_link_libraries(ixwebsocket OpenSSL::SSL OpenSSL::Crypto)
 | 
				
			||||||
    target_include_directories(ixwebsocket PUBLIC ${OPENSSL_INCLUDE_DIR})
 | 
					 | 
				
			||||||
    target_link_libraries(ixwebsocket ${OPENSSL_LIBRARIES})
 | 
					 | 
				
			||||||
  elseif (USE_MBED_TLS)
 | 
					  elseif (USE_MBED_TLS)
 | 
				
			||||||
    message(STATUS "TLS configured to use mbedtls")
 | 
					    message(STATUS "TLS configured to use mbedtls")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -225,15 +225,18 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
 | 
				
			|||||||
    target_compile_options(ixwebsocket PRIVATE /MP)
 | 
					    target_compile_options(ixwebsocket PRIVATE /MP)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
target_include_directories(ixwebsocket PUBLIC ${IXWEBSOCKET_INCLUDE_DIRS})
 | 
					target_include_directories(ixwebsocket PUBLIC $<BUILD_INTERFACE:${IXWEBSOCKET_INCLUDE_DIRS}> $<INSTALL_INTERFACE:include/ixwebsocket>)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set_target_properties(ixwebsocket PROPERTIES PUBLIC_HEADER "${IXWEBSOCKET_HEADERS}")
 | 
					set_target_properties(ixwebsocket PROPERTIES PUBLIC_HEADER "${IXWEBSOCKET_HEADERS}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install(TARGETS ixwebsocket
 | 
					install(TARGETS ixwebsocket EXPORT ixwebsocket
 | 
				
			||||||
        ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
 | 
						ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
 | 
				
			||||||
        PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ixwebsocket/
 | 
						PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/include/ixwebsocket/
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install(EXPORT ixwebsocket NAMESPACE ixwebsocket:: DESTINATION lib/cmake/ixwebsocket)
 | 
				
			||||||
 | 
					export(EXPORT ixwebsocket NAMESPACE ixwebsocket:: FILE ixwebsocketConfig.cmake)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (USE_WS OR USE_TEST)
 | 
					if (USE_WS OR USE_TEST)
 | 
				
			||||||
  add_subdirectory(ixcore)
 | 
					  add_subdirectory(ixcore)
 | 
				
			||||||
  add_subdirectory(ixcrypto)
 | 
					  add_subdirectory(ixcrypto)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user