From 8e88c8d9ecdc2e3a5c65f4cef12cfebc817f4d1a Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Thu, 10 Jan 2019 16:32:27 +0100 Subject: [PATCH] Compiler/root/build: reviewed --- Compiler/root/build | 79 ++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 41 deletions(-) diff --git a/Compiler/root/build b/Compiler/root/build index 6b022e9..4bdfe2a 100755 --- a/Compiler/root/build +++ b/Compiler/root/build @@ -1,50 +1,47 @@ #!/usr/bin/env modbuild -SOURCE_URL="https://root.cern.ch/download/root_v${V_MAJOR}.${V_MINOR}.${V_PATCHLVL}.source.tar.gz" +pbuild::set_download_url "https://root.cern.ch/download/root_v${V_MAJOR}.${V_MINOR}.${V_PATCHLVL}.source.tar.gz" -declare -a EXTRA_LIBS=() -config_args=() +pbuild::add_to_group 'Compiler' -case ${OS} in -Darwin ) - # cocoa doesn't work with GCC!? - config_args+=( '-Dcocoa=OFF' ) - config_args+=( '-Dx11=ON' ) - config_args+=( '-DCMAKE_OSX_SYSROOT=/' ) - config_args+=( "-DCMAKE_OSX_DEPLOYMENT_TARGET=''" ) - ;; -Linux ) - INSTANTCLIENT_INCLUDE_DIR='/usr/lib/oracle/12.1/client64/include' - INSTANTCLIENT_LIBRARY_DIR='/usr/lib/oracle/12.1/client64/lib' - C_INCLUDE_PATH+=":${INSTANTCLIENT_INCLUDE_DIR}" - CXX_INCLUDE_PATH+=":${INSTANTCLIENT_INCLUDE_DIR}" - CPLUS_INCLUDE_PATH+=":${INSTANTCLIENT_INCLUDE_DIR}" - LIBRARY_DIR+=":${INSTANTCLIENT_LIBRARY_DIR}" - config_args+=( "-Doracle=ON" ) - config_args+=( "-DORACLE_PATH_INCLUDES=${INSTANTCLIENT_INCLUDE_DIR}" ) - config_args+=( "-DORACLE_PATH_LIB=${INSTANTCLIENT_LIBRARY_DIR}" ) - config_args+=( "-DORACLE_OCI_VERSION=10G_R2" ) - ;; -*) - std:die 1 "${OS} is not supported" - ;; -esac - -pbuild::patch_sources_Linux() { - if (( V_MAJOR == 6 && V_MINOR < 12)); then - patch -p1 < "${BUILD_BLOCK_DIR}/${V_MAJOR}/cmake_oracle12.patch" +pbuild::pre_prep_Linux() { + if pbuild::use_flag 'oracleclient'; then + if (( V_MAJOR == 6 && V_MINOR < 12)); then + pbuild::add_patch "${V_MAJOR}/cmake_oracle12.patch" + fi fi } -pbuild::configure() { - cmake "${MODULE_SRCDIR}" \ - "${config_args[@]}" \ - -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ - || exit 1 +pbuild::pre_configure_Darwin() { + # cocoa doesn't work with GCC!? + pbuild::add_configure_args '-Dcocoa=OFF' + pbuild::add_configure_args '-Dx11=ON' + pbuild::add_configure_args '-DCMAKE_OSX_SYSROOT=/' + pbuild::add_configure_args "-DCMAKE_OSX_DEPLOYMENT_TARGET=''" +} + +pbuild::pre_configure_Linux() { + if pbuild::use_flag 'oracleclient'; then + INSTANTCLIENT_INCLUDE_DIR='/usr/lib/oracle/12.1/client64/include' + INSTANTCLIENT_LIBRARY_DIR='/usr/lib/oracle/12.1/client64/lib' + C_INCLUDE_PATH+=":${INSTANTCLIENT_INCLUDE_DIR}" + CXX_INCLUDE_PATH+=":${INSTANTCLIENT_INCLUDE_DIR}" + CPLUS_INCLUDE_PATH+=":${INSTANTCLIENT_INCLUDE_DIR}" + LIBRARY_DIR+=":${INSTANTCLIENT_LIBRARY_DIR}" + + pbuild::add_configure_args "-Doracle=ON" + pbuild::add_configure_args "-DORACLE_PATH_INCLUDES=${INSTANTCLIENT_INCLUDE_DIR}" + pbuild::add_configure_args "-DORACLE_PATH_LIB=${INSTANTCLIENT_LIBRARY_DIR}" + pbuild::add_configure_args "-DORACLE_OCI_VERSION=10G_R2" + fi +} + + +pbuild::post_configure() { sed -i.bak "s:${MODULE_SRCDIR//\/\///}/root.exe:${MODULE_BUILDDIR//\/\///}/bin/root.exe:" CMakeFiles/hsimple.dir/build.make } -pbuild::build() { +pbuild::compile() { cmake --build . -- -j6 VERBOSE=1 } @@ -53,9 +50,9 @@ pbuild::install() { } pbuild::post_install_Linux() { - install -m 0644 "${INSTANTCLIENT_LIBRARY_DIR}"/* "${PREFIX}"/lib - install -m 0644 "${INSTANTCLIENT_INCLUDE_DIR}"/* "${PREFIX}"/include + if pbuild::use_flag 'oracleclient'; then + install -m 0644 "${INSTANTCLIENT_LIBRARY_DIR}"/* "${PREFIX}"/lib + install -m 0644 "${INSTANTCLIENT_INCLUDE_DIR}"/* "${PREFIX}"/include + fi } -pbuild::add_to_group 'Compiler' -pbuild::make_all