@@ -42,56 +42,42 @@ cd ${GTSAM_BUILD}
4242cmake ${GTSAM_SOURCE} \
4343 -DCMAKE_BUILD_TYPE=Release \
4444 -DCMAKE_INSTALL_PREFIX=${GTSAM_PREFIX} \
45- -DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \
46- -DGTSAM_BUILD_TESTS=OFF \
47- -DGTSAM_BUILD_UNSTABLE=ON \
48- -DGTSAM_USE_QUATERNIONS=OFF \
49- -DGTSAM_WITH_TBB=OFF \
50- -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \
51- -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF \
5245 -DGTSAM_BUILD_PYTHON=ON \
53- -DGTSAM_UNSTABLE_BUILD_PYTHON=ON \
5446 -DGTSAM_PYTHON_VERSION=${PYTHON_VERSION} \
5547 -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXE} \
56- -DGTSAM_ALLOW_DEPRECATED_SINCE_V43=OFF \
57- -DBOOST_ROOT=${BOOST_ROOT} \
58- -DCMAKE_CXX_FLAGS=" -faligned-new"
48+ -DGTSAM_ENABLE_BOOST_SERIALIZATION=OFF \
49+ -DGTSAM_USE_BOOST_FEATURES=OFF \
50+ -DCMAKE_CXX_FLAGS=" -faligned-new -Wno-error=free-nonheap-object" \
51+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
52+ -DCMAKE_INSTALL_LIBDIR=lib \
53+ -DGTSAM_BUILD_TESTS=OFF \
54+ -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \
55+ -DGTSAM_INSTALL_EXAMPLES=OFF \
56+ -DGTSAM_BUILD_UNSTABLE=ON
5957
6058cmake --build . --config Release -j${NUM_CORES}
6159cmake --install .
6260
63- # Install GTSAM Python package into the build environment
64- # (needed so that gtwrap/cmake can find it during GTDynamics build)
65- echo " Installing GTSAM Python package..."
66- cd ${GTSAM_BUILD} /python
67- $PYTHON_EXE -m pip install .
6861
69- # Copy the gtsam Python package into the source tree so hatchling bundles
70- # it directly inside the gtdynamics wheel. This eliminates the need for
71- # a separate gtsam-develop pip package.
72- echo " Copying gtsam Python package into source tree for bundling..."
62+ # Stage GTSAM
63+ echo " Staging GTSAM Python package for bundling..."
7364GTSAM_PY_SRC=" ${GTSAM_BUILD} /python/gtsam"
7465GTSAM_PY_DST=" ${PROJECT_DIR} /python/gtsam"
7566rm -rf ${GTSAM_PY_DST}
7667mkdir -p ${GTSAM_PY_DST}
7768
78- # Copy core Python files, extension module, and type stubs
7969cp ${GTSAM_PY_SRC} /__init__.py ${GTSAM_PY_DST} /
8070cp ${GTSAM_PY_SRC} /__init__.pyi ${GTSAM_PY_DST} / 2> /dev/null || true
8171cp ${GTSAM_PY_SRC} /* .py ${GTSAM_PY_DST} /
8272find ${GTSAM_PY_SRC} -maxdepth 1 -name " gtsam*.so" -exec cp {} ${GTSAM_PY_DST} / \;
8373
84- # Copy sub-packages (utils, preamble, specializations, type stubs, Data)
8574for subdir in utils preamble specializations gtsam Data; do
8675 if [ -d " ${GTSAM_PY_SRC} /${subdir} " ]; then
8776 cp -r ${GTSAM_PY_SRC} /${subdir} ${GTSAM_PY_DST} /
8877 fi
8978done
9079
91- # Remove tests/examples/notebooks from bundled gtsam (not needed at runtime)
92- rm -rf ${GTSAM_PY_DST} /tests ${GTSAM_PY_DST} /examples ${GTSAM_PY_DST} /notebooks
93- rm -rf ${GTSAM_PY_DST} /__pycache__
94-
80+ rm -rf ${GTSAM_PY_DST} /tests ${GTSAM_PY_DST} /examples ${GTSAM_PY_DST} /notebooks ${GTSAM_PY_DST} /__pycache__
9581
9682# Add rpath to GTSAM libraries for macOS
9783for dylib in ${GTSAM_PREFIX} /lib/* .dylib; do
@@ -126,17 +112,19 @@ mkdir -p ${GTD_BUILD}
126112cd ${GTD_BUILD}
127113cmake ${PROJECT_DIR} \
128114 -DCMAKE_BUILD_TYPE=Release \
129- -DCMAKE_OSX_DEPLOYMENT_TARGET =${MACOSX_DEPLOYMENT_TARGET } \
115+ -DCMAKE_INSTALL_PREFIX =${GTD_PREFIX } \
130116 -DGTSAM_DIR=" ${GTSAM_PREFIX} /lib/cmake/GTSAM" \
131117 -DGTDYNAMICS_BUILD_PYTHON=ON \
132118 -DGTDYNAMICS_BUILD_EXAMPLES=OFF \
133119 -DBUILD_TESTING=OFF \
134- -DPython_EXECUTABLE:FILEPATH=${PYTHON_EXE} \
135120 -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXE} \
136- -DBOOST_ROOT=${BOOST_ROOT} \
137- -DCMAKE_CXX_FLAGS=" -faligned-new"
121+ -DGTDYNAMICS_ENABLE_BOOST_SERIALIZATION=OFF \
122+ -DCMAKE_CXX_FLAGS=" -faligned-new" \
123+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
124+ -DCMAKE_INSTALL_LIBDIR=lib
138125
139126cmake --build . --config Release --target gtdynamics_py -j${NUM_CORES}
127+ cmake --install .
140128
141129# Copy the built Python extension (.so) into the source tree so that
142130# hatchling (a pure-Python build backend) can package it into the wheel.
@@ -157,12 +145,4 @@ find ${GTD_PREFIX}/lib -name "libgtsam*.dylib" -delete
157145
158146export DYLD_LIBRARY_PATH=" ${GTD_PREFIX} /lib:${DYLD_LIBRARY_PATH} "
159147
160- echo " ============================================"
161- echo " GTSAM installed to: ${GTSAM_PREFIX} "
162- echo " GTDynamics built at: ${GTD_BUILD} "
163- echo " GTSAM_DIR=${GTSAM_DIR} "
164- echo " CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} "
165- echo " DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH} "
166- echo " ============================================"
167-
168148echo " before-build completed successfully for Python ${PYTHON_VERSION} !"
0 commit comments