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
 | 
			
		||||
.vsbuild/
 | 
			
		||||
.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
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
# Verify the installed CMake config and pkgconfig files are actually usable.
 | 
			
		||||
 | 
			
		||||
# For Bigtable protos
 | 
			
		||||
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 --build cmake-out -- -j "$(nproc)"
 | 
			
		||||
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
 | 
			
		||||
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 --build cmake-out -- -j "$(nproc)"
 | 
			
		||||
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