packages/libs/libnatpmp/patches/010-cmake.patch
Rosen Penev a31b732007 treewide: build CMake projects with Ninja
faster to compile.

A small selection of packages was tested going from:

Executed in  696.30 secs   fish           external
   usr time   82.98 mins  395.00 micros   82.98 mins
   sys time    9.02 mins    0.00 micros    9.02 mins

to:

Executed in  592.20 secs   fish           external
   usr time   84.84 mins  361.00 micros   84.84 mins
   sys time    8.85 mins   57.00 micros    8.85 mins

Tested by running make -j 12 and wiping staging/build_dir/target_x

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-27 21:51:50 -07:00

53 lines
1.4 KiB
Diff

--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,50 @@
+cmake_minimum_required(VERSION 2.8.12)
+
+if(POLICY CMP0048)
+ cmake_policy(SET CMP0048 NEW)
+endif()
+
+project(natpmp C)
+
+set (NATPMP_VERSION 20150609)
+set (NATPMP_API_VERSION 1)
+
+set (NATPMP_SOURCES
+ natpmp.c
+ getgateway.c
+)
+
+if (WIN32)
+ set (NATPMP_SOURCES ${NATPMP_SOURCES} wingettimeofday.c)
+endif (WIN32)
+
+# Library itself
+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)