Skip to content

Commit

Permalink
Revert "remove google-cloud-cpp-core so it can be rerun in CI"
Browse files Browse the repository at this point in the history
This reverts commit f3dbef8.
  • Loading branch information
h-vetinari committed Dec 20, 2023
1 parent f3dbef8 commit 30218aa
Show file tree
Hide file tree
Showing 16 changed files with 1,006 additions and 0 deletions.
74 changes: 74 additions & 0 deletions recipes/google-cloud-cpp-core/bld.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
@echo on
setlocal EnableDelayedExpansion

:: CMake does not like paths with \ characters
set LIBRARY_PREFIX="%LIBRARY_PREFIX:\=/%"
set BUILD_PREFIX="%BUILD_PREFIX:\=/%"
set SRC_DIR="%SRC_DIR:\=/%"

:: Compile the common libraries. These are shared by other feedstocks
:: and by the subpackages in this feedstock.
cmake -G "Ninja" ^
-S . -B .build/common ^
-DGOOGLE_CLOUD_CPP_ENABLE=__common__ ^
-DBUILD_TESTING=OFF ^
-DBUILD_SHARED_LIBS=OFF ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_CXX_STANDARD=17 ^
-DCMAKE_INSTALL_PREFIX="%LIBRARY_PREFIX%" ^
-DCMAKE_MODULE_PATH="%LIBRARY_PREFIX%/lib/cmake" ^
-DCMAKE_INSTALL_LIBDIR=lib ^
-DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES=OFF ^
-DGOOGLE_CLOUD_CPP_ENABLE_WERROR=OFF
if %ERRORLEVEL% neq 0 exit 1

cmake --build .build/common --config Release
if %ERRORLEVEL% neq 0 exit 1

cmake --install .build/common --prefix stage
if %ERRORLEVEL% neq 0 exit 1

set STAGE="%cd:\=/%"

:: These subpackages are the most commonly used features of google-cloud-cpp.
:: We want to compile them in the core feedstock.
FOR %%G IN (oauth2 bigtable storage spanner) DO (
cmake -G "Ninja" ^
-S . -B .build/%%G ^
-DGOOGLE_CLOUD_CPP_ENABLE=%%G ^
-DGOOGLE_CLOUD_CPP_USE_INSTALLED_COMMON=ON ^
-DCMAKE_PREFIX_PATH="%STAGE%/stage" ^
-DBUILD_TESTING=OFF ^
-DBUILD_SHARED_LIBS=OFF ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_CXX_STANDARD=17 ^
-DCMAKE_INSTALL_PREFIX="%LIBRARY_PREFIX%" ^
-DCMAKE_MODULE_PATH="%LIBRARY_PREFIX%/lib/cmake" ^
-DCMAKE_INSTALL_LIBDIR=lib ^
-DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES=OFF ^
-DGOOGLE_CLOUD_CPP_ENABLE_WERROR=OFF
if %ERRORLEVEL% neq 0 exit 1

cmake --build .build/%%G --config Release
if %ERRORLEVEL% neq 0 exit 1
)

:: `pubsub` must to be compiled with `iam` and policytroubleshooter with `iam`
cmake -G "Ninja" ^
-S . -B .build/pubsub ^
-DGOOGLE_CLOUD_CPP_ENABLE=pubsub,iam,policytroubleshooter ^
-DGOOGLE_CLOUD_CPP_USE_INSTALLED_COMMON=ON ^
-DCMAKE_PREFIX_PATH="%STAGE%/stage" ^
-DBUILD_TESTING=OFF ^
-DBUILD_SHARED_LIBS=OFF ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_CXX_STANDARD=17 ^
-DCMAKE_INSTALL_PREFIX="%LIBRARY_PREFIX%" ^
-DCMAKE_MODULE_PATH="%LIBRARY_PREFIX%/lib/cmake" ^
-DCMAKE_INSTALL_LIBDIR=lib ^
-DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES=OFF ^
-DGOOGLE_CLOUD_CPP_ENABLE_WERROR=OFF
if %ERRORLEVEL% neq 0 exit 1

cmake --build .build/pubsub --config Release
if %ERRORLEVEL% neq 0 exit 1
69 changes: 69 additions & 0 deletions recipes/google-cloud-cpp-core/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash

set -euo pipefail

export OPENSSL_ROOT_DIR=$PREFIX

if [[ "${target_platform}" == osx-* ]]; then
# See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk
CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY"
fi

echo "$(date -u '+%Y-%m-%dT%H:%M:%SZ'): Building __common__ features..."
cmake ${CMAKE_ARGS} \
-GNinja -S . -B .build/common \
-DGOOGLE_CLOUD_CPP_ENABLE=__common__ \
-DBUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=ON \
-DOPENSSL_ROOT_DIR=$PREFIX \
-DCMAKE_BUILD_TYPE=release \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_INSTALL_LIBDIR=lib \
-DProtobuf_PROTOC_EXECUTABLE=$BUILD_PREFIX/bin/protoc \
-DGOOGLE_CLOUD_CPP_GRPC_PLUGIN_EXECUTABLE=$BUILD_PREFIX/bin/grpc_cpp_plugin \
-DGOOGLE_CLOUD_CPP_ENABLE_WERROR=OFF

cmake --build .build/common
cmake --install .build/common --prefix .build/stage
echo "$(date -u '+%Y-%m-%dT%H:%M:%SZ'): DONE - Building __common__ features"

for feature in oauth2 bigtable spanner storage; do
echo "$(date -u '+%Y-%m-%dT%H:%M:%SZ'): Building ${feature}"
cmake ${CMAKE_ARGS} \
-GNinja -S . -B .build/${feature} \
-DGOOGLE_CLOUD_CPP_ENABLE=${feature} \
-DGOOGLE_CLOUD_CPP_USE_INSTALLED_COMMON=ON \
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH};${PWD}/.build/stage" \
-DBUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=ON \
-DOPENSSL_ROOT_DIR=$PREFIX \
-DCMAKE_BUILD_TYPE=release \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_INSTALL_LIBDIR=lib \
-DProtobuf_PROTOC_EXECUTABLE=$BUILD_PREFIX/bin/protoc \
-DGOOGLE_CLOUD_CPP_GRPC_PLUGIN_EXECUTABLE=$BUILD_PREFIX/bin/grpc_cpp_plugin \
-DGOOGLE_CLOUD_CPP_ENABLE_WERROR=OFF
cmake --build .build/${feature}
echo "$(date -u '+%Y-%m-%dT%H:%M:%SZ'): DONE - Building ${feature}"
done

echo "$(date -u '+%Y-%m-%dT%H:%M:%SZ'): Building pubsub"
cmake ${CMAKE_ARGS} \
-GNinja -S . -B .build/pubsub \
-DGOOGLE_CLOUD_CPP_ENABLE=pubsub,iam,policytroubleshooter \
-DGOOGLE_CLOUD_CPP_USE_INSTALLED_COMMON=ON \
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH};${PWD}/.build/stage" \
-DBUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=ON \
-DOPENSSL_ROOT_DIR=$PREFIX \
-DCMAKE_BUILD_TYPE=release \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=$PREFIX \
-DCMAKE_INSTALL_LIBDIR=lib \
-DProtobuf_PROTOC_EXECUTABLE=$BUILD_PREFIX/bin/protoc \
-DGOOGLE_CLOUD_CPP_GRPC_PLUGIN_EXECUTABLE=$BUILD_PREFIX/bin/grpc_cpp_plugin \
-DGOOGLE_CLOUD_CPP_ENABLE_WERROR=OFF
cmake --build .build/pubsub
echo "$(date -u '+%Y-%m-%dT%H:%M:%SZ'): DONE - Building pubsub"
4 changes: 4 additions & 0 deletions recipes/google-cloud-cpp-core/conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# The default at [1] is 10.9 and abseil does not compile with that
# [1]: https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/main/recipe/conda_build_config.yaml
MACOSX_DEPLOYMENT_TARGET: # [osx and x86_64]
- 10.13 # [osx and x86_64]
53 changes: 53 additions & 0 deletions recipes/google-cloud-cpp-core/install-libgoogle-cloud.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
@echo on
setlocal EnableDelayedExpansion

:: CMake does not like paths with \ characters
set LIBRARY_PREFIX="%LIBRARY_PREFIX:\=/%"
set BUILD_PREFIX="%BUILD_PREFIX:\=/%"
set SRC_DIR="%SRC_DIR:\=/%"

:: Once DLLs are working, we should install the non-devel packages using
:: cmake --install .build/%FEATURE% --component google_cloud_cpp_runtime
:: and the devel packages using
:: cmake --install .build/%FEATURE% --component google_cloud_cpp_development

if [%PKG_NAME%] == [libgoogle-cloud] (
REM TODO: fix when DLL support comes along
) else if [%PKG_NAME%] == [libgoogle-cloud-devel] (
REM cmake --install .build/common --component google_cloud_cpp_development
cmake --install .build/common
if %ERRORLEVEL% neq 0 exit 1
) else if [%PKG_NAME%] == [libgoogle-cloud-bigtable] (
REM TODO: fix when DLL support comes along
) else if [%PKG_NAME%] == [libgoogle-cloud-bigtable-devel] (
cmake --install .build/bigtable
if %ERRORLEVEL% neq 0 exit 1
) else if [%PKG_NAME%] == [libgoogle-cloud-oauth2] (
REM TODO: fix when DLL support comes along
) else if [%PKG_NAME%] == [libgoogle-cloud-oauth2-devel] (
cmake --install .build/oauth2
if %ERRORLEVEL% neq 0 exit 1
) else if [%PKG_NAME%] == [libgoogle-cloud-spanner] (
REM TODO: fix when DLL support comes along
) else if [%PKG_NAME%] == [libgoogle-cloud-spanner-devel] (
cmake --install .build/spanner
if %ERRORLEVEL% neq 0 exit 1
) else if [%PKG_NAME%] == [libgoogle-cloud-storage] (
REM TODO: fix when DLL support comes along
) else if [%PKG_NAME%] == [libgoogle-cloud-storage-devel] (
cmake --install .build/storage
if %ERRORLEVEL% neq 0 exit 1
) else if [%PKG_NAME%] == [libgoogle-cloud-pubsub] (
REM TODO: fix when DLL support comes along
) else if [%PKG_NAME%] == [libgoogle-cloud-pubsub-devel] (
cmake --install .build/pubsub
if %ERRORLEVEL% neq 0 exit 1
) else if [%PKG_NAME%] == [libgoogle-cloud-iam] (
REM Nothing to do, installed by pubsub
) else if [%PKG_NAME%] == [libgoogle-cloud-iam-devel] (
REM Nothing to do, installed by pubsub
) else if [%PKG_NAME%] == [libgoogle-cloud-policytroubleshooter] (
REM Nothing to do, installed by pubsub
) else if [%PKG_NAME%] == [libgoogle-cloud-policytroubleshooter-devel] (
REM Nothing to do, installed by pubsub
)
33 changes: 33 additions & 0 deletions recipes/google-cloud-cpp-core/install-libgoogle-cloud.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

set -euo pipefail

case "${PKG_NAME}" in
libgoogle-cloud-devel)
cmake --install .build/common --component google_cloud_cpp_development
;;
libgoogle-cloud)
cmake --install .build/common --component google_cloud_cpp_runtime
;;
libgoogle-cloud-iam-devel)
# Do nothing, this is installed by `libgoogle-cloud-pubsub-devel`.
;;
libgoogle-cloud-iam)
# Do nothing, this is installed by `libgoogle-cloud-pubsub`.
;;
libgoogle-cloud-policytroubleshooter-devel)
# Do nothing, this is installed by `libgoogle-cloud-pubsub-devel`.
;;
libgoogle-cloud-policytroubleshooter)
# Do nothing, this is installed by `libgoogle-cloud-pubsub`.
;;
libgoogle-cloud-*-devel)
feature=${PKG_NAME/#libgoogle-cloud-/}
feature=${feature/%-devel/}
cmake --install .build/${feature} --component google_cloud_cpp_development
;;
libgoogle-cloud-*)
feature=${PKG_NAME/#libgoogle-cloud-/}
cmake --install .build/${feature} --component google_cloud_cpp_runtime
;;
esac
Loading

0 comments on commit 30218aa

Please sign in to comment.