ci: verify pkg-config files actually work (#30)
Change the CI builds to verify the pkg-config files we create actually work. Some improvements in the `.*ignore` files.
This commit is contained in:
		
							parent
							
								
									7abccfa1ec
								
							
						
					
					
						commit
						20009f59de
					
				
					 6 changed files with 145 additions and 10 deletions
				
			
		
							
								
								
									
										22
									
								
								.dockerignore
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.dockerignore
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					# Common build output directory names
 | 
				
			||||||
 | 
					.build/
 | 
				
			||||||
 | 
					_build/
 | 
				
			||||||
 | 
					build-output/
 | 
				
			||||||
 | 
					cmake-out/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Common bazel output directories
 | 
				
			||||||
 | 
					bazel-*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Backup files for Emacs
 | 
				
			||||||
 | 
					*~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ignore IDEA / IntelliJ files
 | 
				
			||||||
 | 
					.idea/
 | 
				
			||||||
 | 
					cmake-build-*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This is a staging directory used to upload the documents to gihub.io
 | 
				
			||||||
 | 
					github-io-staging/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ignore Visual Studio Code files
 | 
				
			||||||
 | 
					.vsbuild/
 | 
				
			||||||
 | 
					.vscode/
 | 
				
			||||||
							
								
								
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -20,6 +20,3 @@ github-io-staging/
 | 
				
			||||||
# Ignore Visual Studio Code files
 | 
					# Ignore Visual Studio Code files
 | 
				
			||||||
.vsbuild/
 | 
					.vsbuild/
 | 
				
			||||||
.vscode/
 | 
					.vscode/
 | 
				
			||||||
 | 
					 | 
				
			||||||
google/cloud/storage/testbench/__pycache__/
 | 
					 | 
				
			||||||
google/cloud/storage/testbench/*.pyc
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										36
									
								
								ci/test-install/bigquery/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								ci/test-install/bigquery/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					# Copyright 2019 Google LLC
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					# you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					# You may obtain a copy of the License at
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					# distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					# limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A simple Makefile to test the `install` target.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This is not intended to be a demonstration of how to write good Makefiles,
 | 
				
			||||||
 | 
					# nor is it a general solution on how to build Makefiles for google-cloud-cpp.
 | 
				
			||||||
 | 
					# It is simply a minimal file to test the installed pkg-config support files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The CXX, CXXFLAGS and CXXLD variables are hard-coded. These values work for
 | 
				
			||||||
 | 
					# our tests, but applications would typically make them configurable parameters.
 | 
				
			||||||
 | 
					CXX=g++ -std=c++11
 | 
				
			||||||
 | 
					CXXLD=$(CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configuration variables to compile and link against the library.
 | 
				
			||||||
 | 
					PROTOS     := googleapis_cpp_cloud_bigquery_protos
 | 
				
			||||||
 | 
					CXXFLAGS   := $(shell pkg-config $(PROTOS) --cflags)
 | 
				
			||||||
 | 
					CXXLDFLAGS := $(shell pkg-config $(PROTOS) --libs-only-L)
 | 
				
			||||||
 | 
					LIBS       := $(shell pkg-config $(PROTOS) --libs-only-l)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A target using the Google Cloud Storage C++ client library.
 | 
				
			||||||
 | 
					main: main.cc
 | 
				
			||||||
 | 
						$(CXXLD) $(CXXFLAGS) $(CXXFLAGS) $(CXXLDFLAGS) -o $@ $^ $(LIBS)
 | 
				
			||||||
							
								
								
									
										36
									
								
								ci/test-install/bigtable/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								ci/test-install/bigtable/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					# Copyright 2019 Google LLC
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					# you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					# You may obtain a copy of the License at
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					# distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					# limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A simple Makefile to test the `install` target.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This is not intended to be a demonstration of how to write good Makefiles,
 | 
				
			||||||
 | 
					# nor is it a general solution on how to build Makefiles for google-cloud-cpp.
 | 
				
			||||||
 | 
					# It is simply a minimal file to test the installed pkg-config support files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The CXX, CXXFLAGS and CXXLD variables are hard-coded. These values work for
 | 
				
			||||||
 | 
					# our tests, but applications would typically make them configurable parameters.
 | 
				
			||||||
 | 
					CXX=g++ -std=c++11
 | 
				
			||||||
 | 
					CXXLD=$(CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configuration variables to compile and link against the library.
 | 
				
			||||||
 | 
					PROTOS     := googleapis_cpp_bigtable_protos
 | 
				
			||||||
 | 
					CXXFLAGS   := $(shell pkg-config $(PROTOS) --cflags)
 | 
				
			||||||
 | 
					CXXLDFLAGS := $(shell pkg-config $(PROTOS) --libs-only-L)
 | 
				
			||||||
 | 
					LIBS       := $(shell pkg-config $(PROTOS) --libs-only-l)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A target using the Google Cloud Storage C++ client library.
 | 
				
			||||||
 | 
					main: main.cc
 | 
				
			||||||
 | 
						$(CXXLD) $(CXXFLAGS) $(CXXFLAGS) $(CXXLDFLAGS) -o $@ $^ $(LIBS)
 | 
				
			||||||
| 
						 | 
					@ -19,13 +19,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set -eu
 | 
					set -eu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# For BigQuery protos
 | 
					# Verify the installed CMake config and pkgconfig files are actually usable.
 | 
				
			||||||
cp -R /home/build/cpp-cmakefiles/ci/test-install/bigquery \
 | 
					 | 
				
			||||||
  /home/build/test-install-bigquery
 | 
					 | 
				
			||||||
cd /home/build/test-install-bigquery
 | 
					 | 
				
			||||||
cmake -H. -Bcmake-out
 | 
					 | 
				
			||||||
cmake --build cmake-out -- -j "$(nproc)"
 | 
					 | 
				
			||||||
cmake-out/utilize-googleapis
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# For Bigtable protos
 | 
					# For Bigtable protos
 | 
				
			||||||
cp -R /home/build/cpp-cmakefiles/ci/test-install/bigtable \
 | 
					cp -R /home/build/cpp-cmakefiles/ci/test-install/bigtable \
 | 
				
			||||||
| 
						 | 
					@ -34,6 +28,18 @@ cd /home/build/test-install-bigtable
 | 
				
			||||||
cmake -H. -Bcmake-out
 | 
					cmake -H. -Bcmake-out
 | 
				
			||||||
cmake --build cmake-out -- -j "$(nproc)"
 | 
					cmake --build cmake-out -- -j "$(nproc)"
 | 
				
			||||||
cmake-out/utilize-googleapis
 | 
					cmake-out/utilize-googleapis
 | 
				
			||||||
 | 
					env PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig \
 | 
				
			||||||
 | 
					    make
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# For BigQuery protos
 | 
				
			||||||
 | 
					cp -R /home/build/cpp-cmakefiles/ci/test-install/bigquery \
 | 
				
			||||||
 | 
					  /home/build/test-install-bigquery
 | 
				
			||||||
 | 
					cd /home/build/test-install-bigquery
 | 
				
			||||||
 | 
					cmake -H. -Bcmake-out
 | 
				
			||||||
 | 
					cmake --build cmake-out -- -j "$(nproc)"
 | 
				
			||||||
 | 
					cmake-out/utilize-googleapis
 | 
				
			||||||
 | 
					env PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig \
 | 
				
			||||||
 | 
					    make
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# For spanner protos
 | 
					# For spanner protos
 | 
				
			||||||
cp -R /home/build/cpp-cmakefiles/ci/test-install/spanner \
 | 
					cp -R /home/build/cpp-cmakefiles/ci/test-install/spanner \
 | 
				
			||||||
| 
						 | 
					@ -42,3 +48,5 @@ cd /home/build/test-install-spanner
 | 
				
			||||||
cmake -H. -Bcmake-out
 | 
					cmake -H. -Bcmake-out
 | 
				
			||||||
cmake --build cmake-out -- -j "$(nproc)"
 | 
					cmake --build cmake-out -- -j "$(nproc)"
 | 
				
			||||||
cmake-out/utilize-googleapis
 | 
					cmake-out/utilize-googleapis
 | 
				
			||||||
 | 
					env PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig \
 | 
				
			||||||
 | 
					    make
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										36
									
								
								ci/test-install/spanner/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								ci/test-install/spanner/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					# Copyright 2019 Google LLC
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Licensed under the Apache License, Version 2.0 (the "License");
 | 
				
			||||||
 | 
					# you may not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					# You may obtain a copy of the License at
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					# distributed under the License is distributed on an "AS IS" BASIS,
 | 
				
			||||||
 | 
					# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					# limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A simple Makefile to test the `install` target.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This is not intended to be a demonstration of how to write good Makefiles,
 | 
				
			||||||
 | 
					# nor is it a general solution on how to build Makefiles for google-cloud-cpp.
 | 
				
			||||||
 | 
					# It is simply a minimal file to test the installed pkg-config support files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The CXX, CXXFLAGS and CXXLD variables are hard-coded. These values work for
 | 
				
			||||||
 | 
					# our tests, but applications would typically make them configurable parameters.
 | 
				
			||||||
 | 
					CXX=g++ -std=c++11
 | 
				
			||||||
 | 
					CXXLD=$(CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configuration variables to compile and link against the library.
 | 
				
			||||||
 | 
					PROTOS     := googleapis_cpp_spanner_protos
 | 
				
			||||||
 | 
					CXXFLAGS   := $(shell pkg-config $(PROTOS) --cflags)
 | 
				
			||||||
 | 
					CXXLDFLAGS := $(shell pkg-config $(PROTOS) --libs-only-L)
 | 
				
			||||||
 | 
					LIBS       := $(shell pkg-config $(PROTOS) --libs-only-l)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A target using the Google Cloud Storage C++ client library.
 | 
				
			||||||
 | 
					main: main.cc
 | 
				
			||||||
 | 
						$(CXXLD) $(CXXFLAGS) $(CXXFLAGS) $(CXXLDFLAGS) -o $@ $^ $(LIBS)
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue