--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,10 @@ if(POLICY CMP0048) cmake_policy(SET CMP0048 NEW) endif() -project(natpmp) +project(natpmp C) + +set (NATPMP_VERSION 20230423) +set (NATPMP_API_VERSION 1) set (NATPMP_SOURCES natpmp.c @@ -16,20 +19,33 @@ if (WIN32) endif (WIN32) # Library itself -add_library(natpmp STATIC ${NATPMP_SOURCES}) -target_include_directories(natpmp PUBLIC ${CMAKE_CURRENT_LIST_DIR}) +add_library(natpmp SHARED ${NATPMP_SOURCES}) +set_target_properties (natpmp PROPERTIES OUTPUT_NAME "natpmp") +set_target_properties (natpmp PROPERTIES VERSION ${NATPMP_VERSION}) +set_target_properties (natpmp PROPERTIES SOVERSION ${NATPMP_API_VERSION}) target_compile_definitions(natpmp PRIVATE -DENABLE_STRNATPMPERR) +target_include_directories(natpmp PUBLIC ${CMAKE_CURRENT_LIST_DIR}) if (WIN32) target_link_libraries(natpmp PUBLIC ws2_32 Iphlpapi) target_compile_definitions(natpmp PUBLIC -DNATPMP_STATICLIB) endif (WIN32) +install(TARGETS natpmp + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) + # Executables add_executable(natpmpc natpmpc.c) target_link_libraries(natpmpc natpmp) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/natpmpc DESTINATION bin) + add_executable(testgetgateway testgetgateway.c getgateway.c) target_link_libraries(testgetgateway natpmp) + +install(FILES natpmp.h DESTINATION include) +install(FILES natpmp_declspec.h DESTINATION include)