aboutsummaryrefslogtreecommitdiff
path: root/ports/argtable3/fix-cmake.patch
blob: 320e6385e939a39c3270a287f013d1716c6a0618 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 57bd7a1..e19e677 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,10 +65,6 @@ if(ARGTABLE3_ENABLE_CONAN AND EXISTS "${CMAKE_BINARY_DIR}/conanbuildinfo.cmake")
   set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath-link,${LINK_FLAGS}")
 endif()
 
-if(ARGTABLE3_ENABLE_TESTS)
-  enable_testing()
-endif()
-
 set(ARGTABLE3_AMALGAMATION_SRC_FILE ${PROJECT_SOURCE_DIR}/dist/argtable3.c)
 set(ARGTABLE3_SRC_FILES
   ${PROJECT_SOURCE_DIR}/src/arg_cmd.c
@@ -88,18 +84,11 @@ set(ARGTABLE3_SRC_FILES
   ${PROJECT_SOURCE_DIR}/src/getopt_long.c
 )
 
-# Platform specific settings for installation
-if(UNIX)
-  include(GNUInstallDirs)
-  set(ARGTABLE3_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
-  set(ARGTABLE3_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR})
-  set(ARGTABLE3_INSTALL_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/argtable3)
-elseif(WIN32)
-  set(ARGTABLE3_INSTALL_LIBDIR "lib")
-  set(ARGTABLE3_INSTALL_INCLUDEDIR "include")
-  set(ARGTABLE3_INSTALL_CMAKEDIR "cmake")
-endif(UNIX)
-
 add_subdirectory(src)
-add_subdirectory(tests)
+
+if(ARGTABLE3_ENABLE_TESTS)
+  enable_testing()
+  add_subdirectory(tests)
+endif()
+
 add_subdirectory(examples)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 429b143..f45c071 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,9 +28,19 @@
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ################################################################################
 
-set(CMAKE_C_FLAGS                   "${CMAKE_C_FLAGS} -std=c89 -Wpedantic")
-set(CMAKE_C_FLAGS                   "${CMAKE_C_FLAGS} -Wall")
-set(CMAKE_C_FLAGS                   "${CMAKE_C_FLAGS} -Wextra")
+include(GNUInstallDirs)
+
+if(UNIX)
+  set(ARGTABLE3_INSTALL_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/argtable3)
+elseif(WIN32)
+  set(ARGTABLE3_INSTALL_CMAKEDIR "cmake")
+endif(UNIX)
+
+if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c89 -Wpedantic")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
+endif()
 
 add_definitions(-D_XOPEN_SOURCE=700)
 
@@ -46,6 +56,7 @@ if(WIN32)
     "${PROJECT_BINARY_DIR}/src/version.rc"
   )
   add_library(argtable3 SHARED ${ARGTABLE3_SRC_FILES} "${PROJECT_BINARY_DIR}/src/version.rc")
+  target_compile_definitions(argtable3 INTERFACE argtable3_IMPORTS)
 else()
   add_library(argtable3 SHARED ${ARGTABLE3_SRC_FILES})
 endif()
@@ -57,8 +68,18 @@ target_include_directories(argtable3 PRIVATE ${PROJECT_SOURCE_DIR}/src)
 set_target_properties(argtable3 argtable3_static PROPERTIES
   VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
   SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR})
-
-install(TARGETS argtable3 EXPORT ${ARGTABLE3_PACKAGE_NAME}Config DESTINATION ${ARGTABLE3_INSTALL_LIBDIR})
-install(TARGETS argtable3_static EXPORT ${ARGTABLE3_PACKAGE_NAME}Config ARCHIVE DESTINATION ${ARGTABLE3_INSTALL_LIBDIR})
-install(FILES "${PROJECT_SOURCE_DIR}/src/argtable3.h" DESTINATION ${ARGTABLE3_INSTALL_INCLUDEDIR})
+if(BUILD_SHARED_LIBS)
+install(TARGETS argtable3
+  EXPORT ${ARGTABLE3_PACKAGE_NAME}Config
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+else()
+install(TARGETS argtable3_static
+  EXPORT ${ARGTABLE3_PACKAGE_NAME}Config
+  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+endif()
+install(FILES "${PROJECT_SOURCE_DIR}/src/argtable3.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 install(EXPORT ${ARGTABLE3_PACKAGE_NAME}Config DESTINATION ${ARGTABLE3_INSTALL_CMAKEDIR})