|
| 1 | +# Generated by vinca http://github.com/RoboStack/vinca. |
| 2 | +# DO NOT EDIT! |
| 3 | + |
| 4 | +set -eo pipefail |
| 5 | + |
| 6 | +CATKIN_BUILD_BINARY_PACKAGE="ON" |
| 7 | + |
| 8 | +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then |
| 9 | + # create catkin cookie to make it is a catkin workspace |
| 10 | + touch $PREFIX/.catkin |
| 11 | + # keep the workspace activation scripts (e.g., local_setup.bat) |
| 12 | + CATKIN_BUILD_BINARY_PACKAGE="OFF" |
| 13 | +fi |
| 14 | + |
| 15 | +rm -rf build |
| 16 | +mkdir build |
| 17 | +cd build |
| 18 | + |
| 19 | +# necessary for correctly linking SIP files (from python_qt_bindings) |
| 20 | +export LINK=$CXX |
| 21 | + |
| 22 | +if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then |
| 23 | + PYTHON_EXECUTABLE=$PREFIX/bin/python |
| 24 | + PKG_CONFIG_EXECUTABLE=$PREFIX/bin/pkg-config |
| 25 | + OSX_DEPLOYMENT_TARGET="10.15" |
| 26 | +else |
| 27 | + PYTHON_EXECUTABLE=$BUILD_PREFIX/bin/python |
| 28 | + PKG_CONFIG_EXECUTABLE=$BUILD_PREFIX/bin/pkg-config |
| 29 | + OSX_DEPLOYMENT_TARGET="11.0" |
| 30 | +fi |
| 31 | + |
| 32 | +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then |
| 33 | + export QT_HOST_PATH="$BUILD_PREFIX" |
| 34 | +else |
| 35 | + export QT_HOST_PATH="$PREFIX" |
| 36 | +fi |
| 37 | + |
| 38 | +echo "USING PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}" |
| 39 | +echo "USING PKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}" |
| 40 | + |
| 41 | +export ROS_PYTHON_VERSION=`$PYTHON_EXECUTABLE -c "import sys; print('%i.%i' % (sys.version_info[0:2]))"` |
| 42 | +echo "Using Python $ROS_PYTHON_VERSION" |
| 43 | +# Fix up SP_DIR which for some reason might contain a path to a wrong Python version |
| 44 | +FIXED_SP_DIR=$(echo $SP_DIR | sed -E "s/python[0-9]+\.[0-9]+/python$ROS_PYTHON_VERSION/") |
| 45 | +echo "Using site-package dir ${FIXED_SP_DIR}" |
| 46 | + |
| 47 | +# see https://github.com/conda-forge/cross-python-feedstock/issues/24 |
| 48 | +if [[ "$CONDA_BUILD_CROSS_COMPILATION" == "1" ]]; then |
| 49 | + find $PREFIX/lib/cmake -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true |
| 50 | + find $PREFIX/share/rosidl* -type f -exec sed -i "s~$PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true |
| 51 | + find $PREFIX/share/rosidl* -type f -exec sed -i "s~\${_IMPORT_PREFIX}/lib/python$ROS_PYTHON_VERSION/site-packages~$BUILD_PREFIX/lib/python$ROS_PYTHON_VERSION/site-packages~g" {} + || true |
| 52 | + find $PREFIX/lib/cmake -type f -exec sed -i "s~message(FATAL_ERROR \"The imported target~message(WARNING \"The imported target~g" {} + || true |
| 53 | + # way around bad CPU type issues |
| 54 | + # rm $PREFIX/bin/doxygen || echo "doxygen not found" |
| 55 | + # rm $PREFIX/bin/dia || echo "dia not found" |
| 56 | + # rm $PREFIX/bin/dot || echo "dot not found" |
| 57 | +fi |
| 58 | + |
| 59 | +# NOTE: there might be undefined references occurring |
| 60 | +# in the Boost.system library, depending on the C++ versions |
| 61 | +# used to compile Boost. We can avoid them by forcing the use of |
| 62 | +# the header-only version of the library. |
| 63 | +export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY" |
| 64 | + |
| 65 | +if [[ $target_platform =~ linux.* ]]; then |
| 66 | + export CFLAGS="$CFLAGS -D__STDC_FORMAT_MACROS=1"; |
| 67 | + export CXXFLAGS="$CXXFLAGS -D__STDC_FORMAT_MACROS=1"; |
| 68 | + # I am too scared to turn this on for now ... |
| 69 | + # export LDFLAGS="$LDFLAGS -lrt"; |
| 70 | + # Some qt stuff uses g++ directly - fix these use cases |
| 71 | + ln -s $GXX $BUILD_PREFIX/bin/g++ |
| 72 | +fi |
| 73 | + |
| 74 | +if [[ $target_platform =~ emscripten.* ]]; then |
| 75 | + export CONDA_BUILD_CROSS_COMPILATION="1" |
| 76 | + echo "set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)"> $SRC_DIR/__vinca_shared_lib_patch.cmake |
| 77 | + echo "set(CMAKE_STRIP FALSE) # used by default in pybind11 on .so modules">> $SRC_DIR/__vinca_shared_lib_patch.cmake |
| 78 | + echo "set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) # fixes an error where numpy header files are not found correctly">> $SRC_DIR/__vinca_shared_lib_patch.cmake |
| 79 | + export EXTRA_CMAKE_ARGS=" \ |
| 80 | + -DCMAKE_FIND_ROOT_PATH=$PREFIX \ |
| 81 | + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \ |
| 82 | + -DCMAKE_PROJECT_INCLUDE=$SRC_DIR/__vinca_shared_lib_patch.cmake \ |
| 83 | + " |
| 84 | +fi |
| 85 | + |
| 86 | +export SKIP_TESTING=ON |
| 87 | + |
| 88 | +if [ "${PKG_NAME}" == "ros-noetic-euslisp" ] || [ "${PKG_NAME}" = "ros-noetic-jskeus" ] || [ "${PKG_NAME}" = "ros-noetic-roseus" ]; then |
| 89 | + GENERATOR="Unix Makefiles" |
| 90 | +else |
| 91 | + GENERATOR="Ninja" |
| 92 | +fi |
| 93 | + |
| 94 | +cmake ${CMAKE_ARGS} --compile-no-warning-as-error \ |
| 95 | + -DCMAKE_INSTALL_PREFIX=$PREFIX \ |
| 96 | + -DCMAKE_PREFIX_PATH=$PREFIX \ |
| 97 | + -DCMAKE_BUILD_TYPE=Release \ |
| 98 | + -DCMAKE_INSTALL_LIBDIR=lib \ |
| 99 | + -DCMAKE_NO_SYSTEM_FROM_IMPORTED=ON \ |
| 100 | + -DCMAKE_FIND_FRAMEWORK=LAST \ |
| 101 | + -DCMAKE_AUTOMOC_EXECUTABLE=$CMAKE_AUTOMOC_EXECUTABLE \ |
| 102 | + -DBUILD_SHARED_LIBS=ON \ |
| 103 | + -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE \ |
| 104 | + -DPython_EXECUTABLE=$PYTHON_EXECUTABLE \ |
| 105 | + -DPython3_EXECUTABLE=$PYTHON_EXECUTABLE \ |
| 106 | + -DPython3_FIND_STRATEGY=LOCATION \ |
| 107 | + -DPYTHON_INSTALL_DIR=$FIXED_SP_DIR \ |
| 108 | + -DPKG_CONFIG_EXECUTABLE=$PKG_CONFIG_EXECUTABLE \ |
| 109 | + -DSETUPTOOLS_DEB_LAYOUT=OFF \ |
| 110 | + -DCATKIN_SKIP_TESTING=$SKIP_TESTING \ |
| 111 | + -DCATKIN_BUILD_BINARY_PACKAGE=$CATKIN_BUILD_BINARY_PACKAGE \ |
| 112 | + -DCMAKE_OSX_DEPLOYMENT_TARGET=$OSX_DEPLOYMENT_TARGET \ |
| 113 | + $EXTRA_CMAKE_ARGS \ |
| 114 | + \ |
| 115 | + -G "$GENERATOR" \ |
| 116 | + $SRC_DIR/$PKG_NAME/src/work/ |
| 117 | + |
| 118 | +cmake --build . --config Release --target all |
| 119 | + |
| 120 | +if [[ "$SKIP_TESTING" == "OFF" ]]; then |
| 121 | + cmake --build . --config Release --target run_tests |
| 122 | +fi |
| 123 | + |
| 124 | +cmake --build . --config Release --target install |
| 125 | + |
| 126 | +if [ "${PKG_NAME}" == "ros-jazzy-catkin" ]; then |
| 127 | + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. |
| 128 | + # This will allow them to be run on environment activation. |
| 129 | + for CHANGE in "activate" "deactivate" |
| 130 | + do |
| 131 | + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" |
| 132 | + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" |
| 133 | + done |
| 134 | +fi |
| 135 | + |
| 136 | +if [ "${PKG_NAME}" == "ros-jazzy-environment" ]; then |
| 137 | + for SCRIPT in "1.ros_distro.sh" "1.ros_etc_dir.sh" "1.ros_package_path.sh" "1.ros_python_version.sh" "1.ros_version.sh" |
| 138 | + do |
| 139 | + mkdir -p "${PREFIX}/etc/conda/activate.d" |
| 140 | + cp "${PREFIX}/etc/catkin/profile.d/${SCRIPT}" "${PREFIX}/etc/conda/activate.d/${SCRIPT}" |
| 141 | + done |
| 142 | +fi |
| 143 | + |
| 144 | +if [ "${PKG_NAME}" == "ros-jazzy-ros-workspace" ]; then |
| 145 | + # Copy the [de]activate scripts to $PREFIX/etc/conda/[de]activate.d. |
| 146 | + # This will allow them to be run on environment activation. |
| 147 | + for CHANGE in "activate" "deactivate" |
| 148 | + do |
| 149 | + mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" |
| 150 | + cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" |
| 151 | + done |
| 152 | +fi |
0 commit comments