1
- # Must be included before CMAKE_INSTALL_INCLUDEDIR is used.
2
- include (GNUInstallDirs )
1
+ add_library (secp256k1 )
2
+
3
+ set_property (TARGET secp256k1 PROPERTY PUBLIC_HEADER
4
+ ${PROJECT_SOURCE_DIR} /include/secp256k1.h
5
+ ${PROJECT_SOURCE_DIR} /include/secp256k1_preallocated.h
6
+ )
3
7
4
8
# Processing must be done in a topological sorting of the dependency graph
5
9
# (dependent module first).
6
10
if (SECP256K1_ENABLE_MODULE_ELLSWIFT )
7
11
add_compile_definitions (ENABLE_MODULE_ELLSWIFT=1 )
12
+ set_property (TARGET secp256k1 APPEND PROPERTY PUBLIC_HEADER ${PROJECT_SOURCE_DIR} /include/secp256k1_ellswift.h )
8
13
endif ()
9
14
10
15
if (SECP256K1_ENABLE_MODULE_MUSIG )
@@ -13,6 +18,7 @@ if(SECP256K1_ENABLE_MODULE_MUSIG)
13
18
endif ()
14
19
set (SECP256K1_ENABLE_MODULE_SCHNORRSIG ON )
15
20
add_compile_definitions (ENABLE_MODULE_MUSIG=1 )
21
+ set_property (TARGET secp256k1 APPEND PROPERTY PUBLIC_HEADER ${PROJECT_SOURCE_DIR} /include/secp256k1_musig.h )
16
22
endif ()
17
23
18
24
if (SECP256K1_ENABLE_MODULE_SCHNORRSIG )
@@ -21,18 +27,22 @@ if(SECP256K1_ENABLE_MODULE_SCHNORRSIG)
21
27
endif ()
22
28
set (SECP256K1_ENABLE_MODULE_EXTRAKEYS ON )
23
29
add_compile_definitions (ENABLE_MODULE_SCHNORRSIG=1 )
30
+ set_property (TARGET secp256k1 APPEND PROPERTY PUBLIC_HEADER ${PROJECT_SOURCE_DIR} /include/secp256k1_schnorrsig.h )
24
31
endif ()
25
32
26
33
if (SECP256K1_ENABLE_MODULE_EXTRAKEYS )
27
34
add_compile_definitions (ENABLE_MODULE_EXTRAKEYS=1 )
35
+ set_property (TARGET secp256k1 APPEND PROPERTY PUBLIC_HEADER ${PROJECT_SOURCE_DIR} /include/secp256k1_extrakeys.h )
28
36
endif ()
29
37
30
38
if (SECP256K1_ENABLE_MODULE_RECOVERY )
31
39
add_compile_definitions (ENABLE_MODULE_RECOVERY=1 )
40
+ set_property (TARGET secp256k1 APPEND PROPERTY PUBLIC_HEADER ${PROJECT_SOURCE_DIR} /include/secp256k1_recovery.h )
32
41
endif ()
33
42
34
43
if (SECP256K1_ENABLE_MODULE_ECDH )
35
44
add_compile_definitions (ENABLE_MODULE_ECDH=1 )
45
+ set_property (TARGET secp256k1 APPEND PROPERTY PUBLIC_HEADER ${PROJECT_SOURCE_DIR} /include/secp256k1_ecdh.h )
36
46
endif ()
37
47
38
48
add_library (secp256k1_precomputed OBJECT EXCLUDE_FROM_ALL
@@ -42,7 +52,7 @@ add_library(secp256k1_precomputed OBJECT EXCLUDE_FROM_ALL
42
52
43
53
# Add objects explicitly rather than linking to the object libs to keep them
44
54
# from being exported.
45
- add_library (secp256k1 secp256k1.c $< TARGET_OBJECTS:secp256k1_precomputed> )
55
+ target_sources (secp256k1 PRIVATE secp256k1.c $< TARGET_OBJECTS:secp256k1_precomputed> )
46
56
47
57
add_library (secp256k1_asm INTERFACE )
48
58
if (SECP256K1_ASM STREQUAL "arm32" )
@@ -68,7 +78,6 @@ set_target_properties(secp256k1_precomputed PROPERTIES POSITION_INDEPENDENT_CODE
68
78
target_include_directories (secp256k1 INTERFACE
69
79
# Add the include path for parent projects so that they don't have to manually add it.
70
80
$< BUILD_INTERFACE:$< $< NOT:$< BOOL:${PROJECT_IS_TOP_LEVEL} > > :${PROJECT_SOURCE_DIR} /include> >
71
- $< INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
72
81
)
73
82
74
83
# This emulates Libtool to make sure Libtool and CMake agree on the ABI version,
@@ -136,36 +145,16 @@ if(SECP256K1_BUILD_CTIME_TESTS)
136
145
endif ()
137
146
138
147
if (SECP256K1_INSTALL )
148
+ include (GNUInstallDirs )
149
+ target_include_directories (secp256k1 INTERFACE
150
+ $< INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
151
+ )
139
152
install (TARGETS secp256k1
140
153
EXPORT ${PROJECT_NAME} -targets
141
154
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
142
155
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
143
156
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
144
- )
145
- set (${PROJECT_NAME} _headers
146
- "${PROJECT_SOURCE_DIR} /include/secp256k1.h"
147
- "${PROJECT_SOURCE_DIR} /include/secp256k1_preallocated.h"
148
- )
149
- if (SECP256K1_ENABLE_MODULE_ECDH )
150
- list (APPEND ${PROJECT_NAME} _headers "${PROJECT_SOURCE_DIR} /include/secp256k1_ecdh.h" )
151
- endif ()
152
- if (SECP256K1_ENABLE_MODULE_RECOVERY )
153
- list (APPEND ${PROJECT_NAME} _headers "${PROJECT_SOURCE_DIR} /include/secp256k1_recovery.h" )
154
- endif ()
155
- if (SECP256K1_ENABLE_MODULE_EXTRAKEYS )
156
- list (APPEND ${PROJECT_NAME} _headers "${PROJECT_SOURCE_DIR} /include/secp256k1_extrakeys.h" )
157
- endif ()
158
- if (SECP256K1_ENABLE_MODULE_SCHNORRSIG )
159
- list (APPEND ${PROJECT_NAME} _headers "${PROJECT_SOURCE_DIR} /include/secp256k1_schnorrsig.h" )
160
- endif ()
161
- if (SECP256K1_ENABLE_MODULE_MUSIG )
162
- list (APPEND ${PROJECT_NAME} _headers "${PROJECT_SOURCE_DIR} /include/secp256k1_musig.h" )
163
- endif ()
164
- if (SECP256K1_ENABLE_MODULE_ELLSWIFT )
165
- list (APPEND ${PROJECT_NAME} _headers "${PROJECT_SOURCE_DIR} /include/secp256k1_ellswift.h" )
166
- endif ()
167
- install (FILES ${${PROJECT_NAME}_headers}
168
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
157
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
169
158
)
170
159
171
160
install (EXPORT ${PROJECT_NAME} -targets
0 commit comments