@@ -53,12 +53,17 @@ WORKDIR /opt
5353ARG BOOST_DOT_VERSION="${BOOST_MAJOR_VERSION}.${BOOST_MINOR_VERSION}.${BOOST_PATCH_VERSION}"
5454ARG BOOST_UNDERSCORE_VERSION="${BOOST_MAJOR_VERSION}_${BOOST_MINOR_VERSION}_${BOOST_PATCH_VERSION}"
5555RUN wget -q https://boostorg.jfrog.io/artifactory/main/release/${BOOST_DOT_VERSION}/source/boost_${BOOST_UNDERSCORE_VERSION}.tar.gz && \
56- tar xzf boost_${BOOST_UNDERSCORE_VERSION}.tar.gz && \
57- mv boost_${BOOST_UNDERSCORE_VERSION} /opt/boost
58-
59- # No need to build Boost, we'll just use the headers
56+ tar xzf boost_${BOOST_UNDERSCORE_VERSION}.tar.gz && \
57+ mv boost_${BOOST_UNDERSCORE_VERSION} /opt/boost && \
58+ cd /opt/boost && \
59+ # Create the include directory structure that CMake expects
60+ mkdir -p /usr/local/include && \
61+ cp -r boost /usr/local/include/
62+
63+ # Set environment variables for Boost
6064ENV BOOST_ROOT=/opt/boost
61- ENV Boost_INCLUDE_DIR=/opt/boost
65+ ENV BOOST_INCLUDEDIR=/usr/local/include
66+ ENV CMAKE_PREFIX_PATH=/opt/boost:/usr/local
6267
6368
6469WORKDIR /opt
@@ -83,32 +88,33 @@ WORKDIR $RDBASE/build
8388RUN echo "source /opt/emsdk/emsdk_env.sh > /dev/null 2>&1" >> ~/.bashrc
8489SHELL ["/bin/bash" , "-c" , "-l" ]
8590RUN emcmake cmake \
86- -DBOOST_ROOT=/opt/boost \
87- -DBoost_INCLUDE_DIR=/opt/boost \
88- -DBoost_NO_SYSTEM_PATHS=ON \
89- -DBoost_NO_BOOST_CMAKE=ON \
90- -DBOOST_LIBRARYDIR=/opt/boost/lib \
91- -DBoost_USE_STATIC_LIBS=ON \
92- -DBoost_USE_STATIC_RUNTIME=ON \
93- -DRDK_BUILD_FREETYPE_SUPPORT=ON \
94- -DRDK_BUILD_MINIMAL_LIB=ON \
95- -DRDK_BUILD_PYTHON_WRAPPERS=OFF \
96- -DRDK_BUILD_CPP_TESTS=OFF \
97- -DRDK_BUILD_INCHI_SUPPORT=ON \
98- -DRDK_USE_BOOST_SERIALIZATION=OFF \
99- -DRDK_OPTIMIZE_POPCNT=OFF \
100- -DRDK_BUILD_THREADSAFE_SSS=OFF \
101- -DRDK_BUILD_DESCRIPTORS3D=OFF \
102- -DRDK_TEST_MULTITHREADED=OFF \
103- -DRDK_BUILD_MAEPARSER_SUPPORT=OFF \
104- -DRDK_BUILD_COORDGEN_SUPPORT=ON \
105- -DRDK_BUILD_SLN_SUPPORT=OFF \
106- -DRDK_USE_BOOST_IOSTREAMS=OFF \
107- -DFREETYPE_INCLUDE_DIRS=/opt/emsdk/upstream/emscripten/cache/sysroot/include/freetype2 \
108- -DFREETYPE_LIBRARY=/opt/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libfreetype.a \
109- -DCMAKE_CXX_FLAGS="-Wno-enum-constexpr-conversion -s DISABLE_EXCEPTION_CATCHING=0" \
110- -DCMAKE_C_FLAGS="-Wno-enum-constexpr-conversion -DCOMPILE_ANSI_ONLY" \
111- -DCMAKE_EXE_LINKER_FLAGS="-s MODULARIZE=1 -s EXPORT_NAME=\" 'initRDKitModule'\" " ..
91+ -DBoost_DEBUG=ON \
92+ -DBoost_VERBOSE=ON \
93+ -DBoost_NO_BOOST_CMAKE=ON \
94+ -DBoost_NO_SYSTEM_PATHS=ON \
95+ -DBOOST_ROOT=/opt/boost \
96+ -DBOOST_INCLUDEDIR=/usr/local/include \
97+ -DBoost_INCLUDE_DIR=/usr/local/include \
98+ -DCMAKE_MODULE_PATH=/opt/boost \
99+ -DRDK_BUILD_FREETYPE_SUPPORT=ON \
100+ -DRDK_BUILD_MINIMAL_LIB=ON \
101+ -DRDK_BUILD_PYTHON_WRAPPERS=OFF \
102+ -DRDK_BUILD_CPP_TESTS=OFF \
103+ -DRDK_BUILD_INCHI_SUPPORT=ON \
104+ -DRDK_USE_BOOST_SERIALIZATION=OFF \
105+ -DRDK_OPTIMIZE_POPCNT=OFF \
106+ -DRDK_BUILD_THREADSAFE_SSS=OFF \
107+ -DRDK_BUILD_DESCRIPTORS3D=OFF \
108+ -DRDK_TEST_MULTITHREADED=OFF \
109+ -DRDK_BUILD_MAEPARSER_SUPPORT=OFF \
110+ -DRDK_BUILD_COORDGEN_SUPPORT=ON \
111+ -DRDK_BUILD_SLN_SUPPORT=OFF \
112+ -DRDK_USE_BOOST_IOSTREAMS=OFF \
113+ -DFREETYPE_INCLUDE_DIRS=/opt/emsdk/upstream/emscripten/cache/sysroot/include/freetype2 \
114+ -DFREETYPE_LIBRARY=/opt/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libfreetype.a \
115+ -DCMAKE_CXX_FLAGS="-Wno-enum-constexpr-conversion -s DISABLE_EXCEPTION_CATCHING=0" \
116+ -DCMAKE_C_FLAGS="-Wno-enum-constexpr-conversion -DCOMPILE_ANSI_ONLY" \
117+ -DCMAKE_EXE_LINKER_FLAGS="-s MODULARIZE=1 -s EXPORT_NAME=\" 'initRDKitModule'\" " ..
112118
113119# "patch" to make the InChI code work with emscripten:
114120RUN cp /src/rdkit/External/INCHI-API/src/INCHI_BASE/src/util.c /src/rdkit/External/INCHI-API/src/INCHI_BASE/src/util.c.bak && \
0 commit comments