aboutsummaryrefslogtreecommitdiff
path: root/math/libtommath/files/patch-CMakeLists.txt
blob: 5a6bef8dcf3a8e61d2a140c9c6678d4fa6085af0 (plain) (blame)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
--- CMakeLists.txt.orig	2024-03-27 13:30:15 UTC
+++ CMakeLists.txt
@@ -29,11 +29,6 @@ include(sources.cmake)
 include(sources.cmake)
 
 #-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-option(BUILD_SHARED_LIBS "Build shared library and only the shared library if \"ON\", default is static" OFF)
-
-#-----------------------------------------------------------------------------
 # Add support for ccache if desired
 #-----------------------------------------------------------------------------
 find_program(CCACHE ccache)
@@ -68,10 +63,10 @@ else()
     set(LTM_C_FLAGS -Wall -Wsign-compare -Wextra -Wshadow
                     -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align
                     -Wstrict-prototypes -Wpointer-arith -Wsystem-headers)
-    set(CMAKE_C_FLAGS_DEBUG "-g3")
-    set(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops -fomit-frame-pointer")
-    set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g3 -O2")
-    set(CMAKE_C_FLAGS_MINSIZEREL "-Os")
+#    set(CMAKE_C_FLAGS_DEBUG "-g3")
+#    set(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops -fomit-frame-pointer")
+#    set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g3 -O2")
+#    set(CMAKE_C_FLAGS_MINSIZEREL "-Os")
 endif()
 
 # What compiler do we have and what are their...uhm... peculiarities
@@ -103,6 +98,7 @@ add_library(${PROJECT_NAME}
 # library target
 #-----------------------------------------------------------------------------
 add_library(${PROJECT_NAME}
+    OBJECT
     ${SOURCES}
     ${HEADERS}
 )
@@ -125,12 +121,23 @@ endif()
     list(APPEND PUBLIC_HEADERS tommath_c89.h)
 endif()
 
+add_library(${PROJECT_NAME}_shared SHARED $<TARGET_OBJECTS:${PROJECT_NAME}>)
+add_library(${PROJECT_NAME}_static STATIC $<TARGET_OBJECTS:${PROJECT_NAME}>)
 set_target_properties(${PROJECT_NAME} PROPERTIES
+    POSITION_INDEPENDENT_CODE TRUE
+)
+set_target_properties(${PROJECT_NAME}_shared PROPERTIES
     OUTPUT_NAME tommath
     VERSION ${PROJECT_VERSION}
     SOVERSION ${PROJECT_VERSION_MAJOR}
     PUBLIC_HEADER "${PUBLIC_HEADERS}"
 )
+set_target_properties(${PROJECT_NAME}_static PROPERTIES
+    OUTPUT_NAME tommath
+    VERSION ${PROJECT_VERSION}
+    SOVERSION ${PROJECT_VERSION_MAJOR}
+    PUBLIC_HEADER "${PUBLIC_HEADERS}"
+)
 
 option(COMPILE_LTO "Build with LTO enabled")
 if(COMPILE_LTO)
@@ -159,7 +166,7 @@ set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
 set(PROJECT_CONFIG_FILE "${PROJECT_NAME}-config.cmake")
 set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
 
-install(TARGETS ${PROJECT_NAME}
+install(TARGETS ${PROJECT_NAME}_shared ${PROJECT_NAME}_static
     EXPORT ${TARGETS_EXPORT_NAME}
     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
@@ -168,20 +175,18 @@ install(TARGETS ${PROJECT_NAME}
 )
 
 # Install libtommath.pc for pkg-config if we build a shared library
-if(BUILD_SHARED_LIBS)
-    # Let the user override the default directory of the pkg-config file (usually this shouldn't be required to be changed)
-    set(CMAKE_INSTALL_PKGCONFIGDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Folder where to install .pc files")
+# Let the user override the default directory of the pkg-config file (usually this shouldn't be required to be changed)
+set(CMAKE_INSTALL_PKGCONFIGDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Folder where to install .pc files")
 
-    configure_file(
-        ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in
-        ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
-        @ONLY
-    )
+configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in
+    ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
+    @ONLY
+)
 
-    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
-        DESTINATION ${CMAKE_INSTALL_PKGCONFIGDIR}
-    )
-endif()
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
+    DESTINATION ${CMAKE_INSTALL_PKGCONFIGDIR}
+)
 
 # generate package version file
 write_basic_package_version_file(
@@ -262,18 +267,11 @@ endif()
     list(APPEND CPACK_GENERATOR FREEBSD)
 endif()
 
-set(LTM_DEBIAN_SHARED_PACKAGE_NAME "${PROJECT_NAME}${PACKAGE_NAME_SUFFIX}${PROJECT_VERSION_MAJOR}")
-
 # general CPack config
 set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}/packages/${DISTRO_PACK_PATH})
 message(STATUS "CPack: packages will be generated under ${CPACK_PACKAGE_DIRECTORY}")
-if(BUILD_SHARED_LIBS)
-    set(CPACK_PACKAGE_NAME "${PROJECT_NAME}${PROJECT_VERSION_MAJOR}")
-    set(CPACK_DEBIAN_PACKAGE_NAME "${LTM_DEBIAN_SHARED_PACKAGE_NAME}")
-else()
-    set(CPACK_PACKAGE_NAME "${PROJECT_NAME}-devel")
-    set(CPACK_DEBIAN_LIBRARIES_PACKAGE_NAME "${PROJECT_NAME}${PACKAGE_NAME_SUFFIX}-dev")
-endif()
+set(CPACK_PACKAGE_NAME "${PROJECT_NAME}${PROJECT_VERSION_MAJOR}")
+set(CPACK_DEBIAN_PACKAGE_NAME "${PROJECT_NAME}${PACKAGE_NAME_SUFFIX}${PROJECT_VERSION_MAJOR}")
 set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LibTomMath")
 set(CPACK_PACKAGE_VENDOR "libtom projects")
@@ -287,15 +285,7 @@ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
 set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON)
 set(CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION})
 set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
-if(BUILD_SHARED_LIBS)
-    set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
-else()
-    set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
-    set(CPACK_DEBIAN_PACKAGE_DEPENDS ${LTM_DEBIAN_SHARED_PACKAGE_NAME})
-    set(CPACK_DEB_COMPONENT_INSTALL ON)
-    set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
-    set(CPACK_COMPONENTS_ALL Libraries)
-endif()
+set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
 
 # rpm specific CPack config
 set(CPACK_RPM_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION})