-
Notifications
You must be signed in to change notification settings - Fork 731
/
patch-CMakeLists.txt
185 lines (170 loc) · 8.32 KB
/
patch-CMakeLists.txt
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
--- CMakeLists.txt.orig 2023-12-13 10:39:37 UTC
+++ CMakeLists.txt
@@ -6,7 +6,7 @@ file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/include/gemm
string(REGEX REPLACE ".+\"([0-9]+\.[0-9]+\.[0-9]+)(-dev)?\"" "\\1"
gemmi_version_str ${gemmi_version_line})
-project(gemmi LANGUAGES C CXX VERSION ${gemmi_version_str})
+project(gemmi_python LANGUAGES C CXX VERSION ${gemmi_version_str})
message(STATUS "Gemmi version ${PROJECT_VERSION}")
include(GNUInstallDirs) # for CMAKE_INSTALL_LIBDIR, etc
@@ -176,37 +176,39 @@ endif()
# target_link_libraries(fgemmi PRIVATE cgemmi)
#endif()
-add_library(gemmi_headers INTERFACE)
-add_library(gemmi::headers ALIAS gemmi_headers)
-target_include_directories(gemmi_headers INTERFACE
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
- "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
-target_compile_features(gemmi_headers INTERFACE cxx_std_11)
-set_target_properties(gemmi_headers PROPERTIES EXPORT_NAME headers)
+#add_library(gemmi_headers INTERFACE)
+#add_library(gemmi::headers ALIAS gemmi_headers)
+#target_include_directories(gemmi_headers INTERFACE
+# "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
+# "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
+#target_compile_features(gemmi_headers INTERFACE cxx_std_11)
+#set_target_properties(gemmi_headers PROPERTIES EXPORT_NAME headers)
-add_library(gemmi_cpp
- src/align.cpp src/assembly.cpp src/calculate.cpp src/crd.cpp
- src/ddl.cpp src/eig3.cpp
- src/mmcif.cpp src/mmread_gz.cpp src/mtz.cpp src/mtz2cif.cpp
- src/polyheur.cpp src/read_cif.cpp src/resinfo.cpp
- src/riding_h.cpp src/sprintf.cpp src/to_mmcif.cpp
- src/to_pdb.cpp src/monlib.cpp src/topo.cpp src/xds_ascii.cpp)
-add_library(gemmi::gemmi_cpp ALIAS gemmi_cpp)
-set_property(TARGET gemmi_cpp PROPERTY POSITION_INDEPENDENT_CODE ON)
+#add_library(gemmi_cpp
+# src/align.cpp src/assembly.cpp src/calculate.cpp src/crd.cpp
+# src/ddl.cpp src/eig3.cpp
+# src/mmcif.cpp src/mmread_gz.cpp src/mtz.cpp src/mtz2cif.cpp
+# src/polyheur.cpp src/read_cif.cpp src/resinfo.cpp
+# src/riding_h.cpp src/sprintf.cpp src/to_mmcif.cpp
+# src/to_pdb.cpp src/monlib.cpp src/topo.cpp src/xds_ascii.cpp)
+#add_library(gemmi::gemmi_cpp ALIAS gemmi_cpp)
+#set_property(TARGET gemmi_cpp PROPERTY POSITION_INDEPENDENT_CODE ON)
#set_property(TARGET gemmi_cpp PROPERTY CXX_VISIBILITY_PRESET hidden)
-target_compile_definitions(gemmi_cpp PRIVATE GEMMI_BUILD)
-target_include_directories(gemmi_cpp PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/third_party")
+#target_compile_definitions(gemmi_cpp PRIVATE GEMMI_BUILD)
+#target_include_directories(gemmi_cpp PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/third_party")
-if (BUILD_SHARED_LIBS)
- target_compile_definitions(gemmi_cpp PUBLIC GEMMI_SHARED)
-endif()
-target_link_libraries(gemmi_cpp PUBLIC gemmi_headers)
-support_gz(gemmi_cpp)
+#if (BUILD_SHARED_LIBS)
+# target_compile_definitions(gemmi_cpp PUBLIC GEMMI_SHARED)
+#endif()
+#target_link_libraries(gemmi_cpp PUBLIC gemmi_headers)
+#support_gz(gemmi_cpp)
+find_package(gemmi REQUIRED)
+
### programs from prog/ ###
add_library(options OBJECT prog/options.cpp)
-target_link_libraries(options PUBLIC gemmi_headers)
+#target_link_libraries(options PUBLIC gemmi_headers)
target_include_directories(options PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/third_party")
if (GEMMI_VERSION_INFO)
target_compile_definitions(options PRIVATE GEMMI_VERSION_INFO=${GEMMI_VERSION_INFO})
@@ -218,11 +220,11 @@ function(add_single_prog target)
cmake_parse_arguments(arg "NOLIB;GZ" "ADD_SRC" "" ${ARGN})
add_executable(gemmi-${target} EXCLUDE_FROM_ALL prog/${target}.cpp ${arg_ADD_SRC}
$<TARGET_OBJECTS:options>)
- if (arg_NOLIB)
- target_link_libraries(gemmi-${target} PRIVATE gemmi_headers)
- else()
- target_link_libraries(gemmi-${target} PRIVATE gemmi_cpp)
- endif()
+ #if (arg_NOLIB)
+ # target_link_libraries(gemmi-${target} PRIVATE gemmi_headers)
+ #else()
+ # target_link_libraries(gemmi-${target} PRIVATE gemmi_cpp)
+ #endif()
target_include_directories(gemmi-${target} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/third_party")
if (arg_GZ)
@@ -279,7 +281,7 @@ add_executable(gemmi_prog
prog/xds2mtz.cpp
$<TARGET_OBJECTS:options>)
add_executable(gemmi::prog ALIAS gemmi_prog)
-target_link_libraries(gemmi_prog PRIVATE gemmi_cpp)
+target_link_libraries(gemmi_prog PRIVATE gemmi)
support_gz(gemmi_prog)
target_include_directories(gemmi_prog PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/third_party")
target_compile_definitions(gemmi_prog PRIVATE GEMMI_ALL_IN_ONE=1)
@@ -324,10 +326,10 @@ target_link_libraries(doc_example PRIVATE gemmi_header
add_executable(doc_example2 EXCLUDE_FROM_ALL docs/code/cif_cc.cpp)
target_link_libraries(doc_example2 PRIVATE gemmi_headers)
add_executable(doc_maybegz EXCLUDE_FROM_ALL docs/code/maybegz.cpp docs/code/mutate.cpp)
-target_link_libraries(doc_maybegz PRIVATE gemmi_cpp)
+target_link_libraries(doc_maybegz PRIVATE gemmi)
support_gz(doc_maybegz)
add_executable(doc_newmtz EXCLUDE_FROM_ALL docs/code/newmtz.cpp)
-target_link_libraries(doc_newmtz PRIVATE gemmi_cpp)
+target_link_libraries(doc_newmtz PRIVATE gemmi)
support_gz(doc_newmtz)
# always compile these tests with assertions enabled
@@ -336,7 +338,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU|Intel")
endif()
add_executable(test_disulf EXCLUDE_FROM_ALL tests/disulf.cpp)
-target_link_libraries(test_disulf PRIVATE gemmi_cpp)
+target_link_libraries(test_disulf PRIVATE gemmi)
support_gz(test_disulf)
# auth_label requires <experimental/filesystem> and -lstdc++fs
@@ -348,7 +350,7 @@ endif()
support_gz(auth_label)
add_executable(check_conn EXCLUDE_FROM_ALL examples/check_conn.cpp)
-target_link_libraries(check_conn PRIVATE gemmi_cpp)
+target_link_libraries(check_conn PRIVATE gemmi)
enable_testing()
@@ -385,7 +387,7 @@ if (benchmark_FOUND)
foreach(b stoi elem mod niggli pdb resinfo round sym writecif)
add_executable(${b}-bm EXCLUDE_FROM_ALL benchmarks/${b}.cpp)
if (b MATCHES "resinfo|pdb|writecif")
- target_link_libraries(${b}-bm PRIVATE gemmi_cpp)
+ target_link_libraries(${b}-bm PRIVATE gemmi)
endif()
target_link_libraries(${b}-bm PRIVATE gemmi_headers benchmark::benchmark)
set_property(TARGET ${b}-bm PROPERTY RUNTIME_OUTPUT_DIRECTORY
@@ -421,9 +423,8 @@ if (USE_PYTHON)
python/mtz.cpp python/read.cpp python/recgrid.cpp
python/scaling.cpp python/search.cpp
python/sf.cpp python/sym.cpp python/topo.cpp
- python/unitcell.cpp python/write.cpp
- $<TARGET_OBJECTS:gemmi_cpp>)
- target_link_libraries(gemmi_py PRIVATE gemmi_headers)
+ python/unitcell.cpp python/write.cpp)
+ target_link_libraries(gemmi_py PRIVATE gemmi::gemmi_cpp)
set_property(TARGET gemmi_py PROPERTY OUTPUT_NAME gemmi)
if(CMAKE_CXX_FLAGS MATCHES "-Wshadow")
target_compile_options(gemmi_py PRIVATE "-Wno-shadow")
@@ -450,19 +451,19 @@ if (BUILD_GEMMI_PROGRAM)
install(TARGETS gemmi_prog EXPORT GemmiTargets)
endif()
-if (INSTALL_DEV_FILES)
+#if (INSTALL_DEV_FILES)
# In CMake 3.23 we'll be able to use FILE_SET to install the headers
- install(DIRECTORY include/gemmi DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
- install(TARGETS gemmi_headers gemmi_cpp EXPORT GemmiTargets)
- install(EXPORT GemmiTargets FILE gemmi-targets.cmake NAMESPACE gemmi::
- DESTINATION "${GEMMI_INSTALL_CMAKEDIR}")
- install(FILES
- "${CMAKE_CURRENT_BINARY_DIR}/gemmi-config.cmake"
- "${CMAKE_CURRENT_BINARY_DIR}/gemmi-config-version.cmake"
- DESTINATION "${GEMMI_INSTALL_CMAKEDIR}")
-elseif (BUILD_SHARED_LIBS AND BUILD_GEMMI_PROGRAM)
- install(TARGETS gemmi_cpp)
-endif()
+ #install(DIRECTORY include/gemmi DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+ #install(TARGETS gemmi_headers gemmi_cpp EXPORT GemmiTargets)
+ #install(EXPORT GemmiTargets FILE gemmi-targets.cmake NAMESPACE gemmi::
+ # DESTINATION "${GEMMI_INSTALL_CMAKEDIR}")
+ #install(FILES
+ # "${CMAKE_CURRENT_BINARY_DIR}/gemmi-config.cmake"
+ # "${CMAKE_CURRENT_BINARY_DIR}/gemmi-config-version.cmake"
+ # DESTINATION "${GEMMI_INSTALL_CMAKEDIR}")
+#elseif (BUILD_SHARED_LIBS AND BUILD_GEMMI_PROGRAM)
+# install(TARGETS gemmi_cpp)
+#endif()
if (USE_PYTHON)
if (DEFINED PYTHON_INSTALL_DIR)