summaryrefslogtreecommitdiff
path: root/net-libs/google-cloud-cpp/files/0002-cmake-fix-library-issues.patch
blob: 23a6d24d54dad95d63bcf59b497841bfb3dbaecd (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
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
From 9978d05d4418bf813b8a457a2e49d0fc8fc8b26b Mon Sep 17 00:00:00 2001
From: Jason Zaman <jason@perfinion.com>
Date: Fri, 7 Sep 2018 22:35:24 +0800
Subject: [PATCH 2/2] cmake: fix library issues

Set library soversions so CMake sets the symlinks and soversions
properly.
Install the cmake files in the correct dir.

Signed-off-by: Jason Zaman <jason@perfinion.com>
---
 google/cloud/CMakeLists.txt           | 14 +++++++-------
 google/cloud/bigtable/CMakeLists.txt  | 11 ++++++++---
 google/cloud/firestore/CMakeLists.txt | 14 ++++++++------
 google/cloud/storage/CMakeLists.txt   | 12 +++++++-----
 4 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/google/cloud/CMakeLists.txt b/google/cloud/CMakeLists.txt
index 4d777261..4e26290c 100644
--- a/google/cloud/CMakeLists.txt
+++ b/google/cloud/CMakeLists.txt
@@ -99,6 +99,9 @@ target_include_directories(google_cloud_cpp_common
                                   $<INSTALL_INTERFACE:include>)
 target_compile_options(google_cloud_cpp_common
                        PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
+set_target_properties(google_cloud_cpp_common PROPERTIES
+                      VERSION ${GOOGLE_CLOUD_CPP_VERSION_MAJOR}.${GOOGLE_CLOUD_CPP_VERSION_MINOR}.${GOOGLE_CLOUD_CPP_VERSION_PATCH}
+                      SOVERSION ${GOOGLE_CLOUD_CPP_VERSION_MAJOR})
 
 include(CreateBazelConfig)
 create_bazel_config(google_cloud_cpp_common)
@@ -150,7 +153,7 @@ endforeach ()
 
 # Export the CMake targets to make it easy to create configuration files.
 install(EXPORT google_cloud_cpp_common-targets
-        DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/google_cloud_cpp_common")
+        DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
 
 # Install the libraries and headers in the locations determined by
 # GNUInstallDirs
@@ -186,12 +189,9 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/google_cloud_cpp_common.pc"
 configure_file("config.cmake.in" "google_cloud_cpp_common-config.cmake" @ONLY)
 configure_file("${PROJECT_SOURCE_DIR}/google/cloud/config-version.cmake.in"
                "google_cloud_cpp_common-config-version.cmake" @ONLY)
-install(
-    FILES
-        "${CMAKE_CURRENT_BINARY_DIR}/google_cloud_cpp_common-config.cmake"
-        "${CMAKE_CURRENT_BINARY_DIR}/google_cloud_cpp_common-config-version.cmake"
-        DESTINATION
-        "${CMAKE_INSTALL_LIBDIR}/cmake/google_cloud_cpp_common")
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/google_cloud_cpp_common-config.cmake"
+              "${CMAKE_CURRENT_BINARY_DIR}/google_cloud_cpp_common-config-version.cmake"
+        DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
 
 add_subdirectory(bigtable)
 add_subdirectory(firestore)
diff --git a/google/cloud/bigtable/CMakeLists.txt b/google/cloud/bigtable/CMakeLists.txt
index 8aaff05c..9bd3effd 100644
--- a/google/cloud/bigtable/CMakeLists.txt
+++ b/google/cloud/bigtable/CMakeLists.txt
@@ -102,6 +102,9 @@ target_include_directories(bigtable_protos
                                   $<INSTALL_INTERFACE:include>)
 target_compile_options(bigtable_protos
                        PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
+set_target_properties(bigtable_protos PROPERTIES
+                      VERSION ${BIGTABLE_CLIENT_VERSION_MAJOR}.${BIGTABLE_CLIENT_VERSION_MINOR}.${BIGTABLE_CLIENT_VERSION_PATCH}
+                      SOVERSION ${BIGTABLE_CLIENT_VERSION_MAJOR})
 add_library(bigtable::protos ALIAS bigtable_protos)
 
 # Enable unit tests
@@ -212,6 +215,9 @@ target_include_directories(bigtable_client
                                   $<INSTALL_INTERFACE:include>)
 target_compile_options(bigtable_client
                        PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
+set_target_properties(bigtable_client PROPERTIES
+                      VERSION ${BIGTABLE_CLIENT_VERSION_MAJOR}.${BIGTABLE_CLIENT_VERSION_MINOR}.${BIGTABLE_CLIENT_VERSION_PATCH}
+                      SOVERSION ${BIGTABLE_CLIENT_VERSION_MAJOR})
 add_library(bigtable::client ALIAS bigtable_client)
 
 include(CreateBazelConfig)
@@ -369,7 +375,7 @@ if (NOT ${GOOGLE_CLOUD_CPP_GRPC_PROVIDER} STREQUAL "module")
 
     # Export the CMake targets to make it easy to create configuration files.
     install(EXPORT bigtable-targets
-            DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/bigtable_client")
+            DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
 endif ()
 
 install(TARGETS bigtable_client
@@ -407,5 +413,4 @@ configure_file("${PROJECT_SOURCE_DIR}/google/cloud/config-version.cmake.in"
                "bigtable_client-config-version.cmake" @ONLY)
 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bigtable_client-config.cmake"
               "${CMAKE_CURRENT_BINARY_DIR}/bigtable_client-config-version.cmake"
-              DESTINATION
-              "${CMAKE_INSTALL_LIBDIR}/cmake/bigtable_client")
+        DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
diff --git a/google/cloud/firestore/CMakeLists.txt b/google/cloud/firestore/CMakeLists.txt
index 88c5ad6d..63d8add1 100644
--- a/google/cloud/firestore/CMakeLists.txt
+++ b/google/cloud/firestore/CMakeLists.txt
@@ -62,6 +62,9 @@ target_include_directories(firestore_client
                                   $<INSTALL_INTERFACE:include>)
 target_compile_options(firestore_client
                        PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
+set_target_properties(firestore_client PROPERTIES
+                      VERSION ${FIRESTORE_CLIENT_VERSION_MAJOR}.${FIRESTORE_CLIENT_VERSION_MINOR}.${FIRESTORE_CLIENT_VERSION_PATCH}
+                      SOVERSION ${FIRESTORE_CLIENT_VERSION_MAJOR})
 add_library(firestore::client ALIAS firestore_client)
 
 include(CreateBazelConfig)
@@ -104,7 +107,8 @@ install(TARGETS
 
 # The exports can only be installed if all the dependencies are installed. CMake
 # needs to know where the submodules will be installed from,
-install(EXPORT firestore-targets DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
+install(EXPORT firestore-targets
+        DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
 
 install(TARGETS firestore_client
         EXPORT firestore-targets
@@ -138,8 +142,6 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/firestore_client.pc" DESTINATION
 configure_file("config.cmake.in" "firestore_client-config.cmake" @ONLY)
 configure_file("${PROJECT_SOURCE_DIR}/google/cloud/config-version.cmake.in"
                "firestore_client-config-version.cmake" @ONLY)
-install(
-    FILES "${CMAKE_CURRENT_BINARY_DIR}/firestore_client-config.cmake"
-          "${CMAKE_CURRENT_BINARY_DIR}/firestore_client-config-version.cmake"
-          DESTINATION
-          ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/firestore_client-config.cmake"
+              "${CMAKE_CURRENT_BINARY_DIR}/firestore_client-config-version.cmake"
+        DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
diff --git a/google/cloud/storage/CMakeLists.txt b/google/cloud/storage/CMakeLists.txt
index c8b641a0..c91bb17c 100644
--- a/google/cloud/storage/CMakeLists.txt
+++ b/google/cloud/storage/CMakeLists.txt
@@ -216,6 +216,9 @@ target_include_directories(storage_client
                                   $<INSTALL_INTERFACE:include>)
 target_compile_options(storage_client
                        PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
+set_target_properties(storage_client PROPERTIES
+                      VERSION ${STORAGE_CLIENT_VERSION_MAJOR}.${STORAGE_CLIENT_VERSION_MINOR}.${STORAGE_CLIENT_VERSION_PATCH}
+                      SOVERSION ${STORAGE_CLIENT_VERSION_MAJOR})
 
 add_library(storage_client_testing
             testing/canonical_errors.h
@@ -326,20 +329,20 @@ install(TARGETS storage_common_options nlohmann_json
 
 # Export the CMake targets to make it easy to create configuration files.
 install(EXPORT storage-targets
-        DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/storage_client")
+        DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
 
 install(TARGETS storage_client
         EXPORT storage-targets
         RUNTIME DESTINATION bin
         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-install(DIRECTORY . DESTINATION include/storage/client
+install(DIRECTORY . DESTINATION include/google/cloud/storage/client
         FILES_MATCHING
         PATTERN "*.h"
         PATTERN "testing/*"
         EXCLUDE)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version_info.h DESTINATION
-              include/storage/client)
+              include/google/cloud/storage/client)
 
 # Setup global variables used in the following *.in files.
 set(GOOGLE_CLOUD_CPP_CONFIG_VERSION_MAJOR ${STORAGE_CLIENT_VERSION_MAJOR})
@@ -362,5 +365,4 @@ configure_file("${PROJECT_SOURCE_DIR}/google/cloud/config-version.cmake.in"
                "storage_client-config-version.cmake" @ONLY)
 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/storage_client-config.cmake"
               "${CMAKE_CURRENT_BINARY_DIR}/storage_client-config-version.cmake"
-              DESTINATION
-              "${CMAKE_INSTALL_LIBDIR}/cmake/storage_client")
+        DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules")
-- 
2.16.4