Skip to content

Commit

Permalink
Merge pull request #375 from stuartjamesmcnicholas/64-bit
Browse files Browse the repository at this point in the history
64 bit
  • Loading branch information
FilomenoSanchez authored Mar 25, 2024
2 parents d12e526 + 16ae988 commit 4dc7fc4
Show file tree
Hide file tree
Showing 8 changed files with 127 additions and 36 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,13 @@ Binaries are available on the releases page. Please read the instructions there
<br/>After first checkout you should run the following script to build:
`./initial_build.sh`
This should build all dependencies and then `Moorhen`.
\
\
It is also possible to build a 64-bit version of Moorhen which (currently) can address up to 8GB memory:
`./initial_build.sh --64bit`
Note that you need a 64-bit WASM capable web browser to use this. Most browsers are not 64-bit capable by default. Some have
64-bit capability available as an option or in development versions.
See the `MEMORY64` feature at [https://webassembly.org/features/](https://webassembly.org/features/)

6. To run the Moorhen molecular graphics application:
`cd baby-gru`
Expand Down
10 changes: 9 additions & 1 deletion get_sources
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ echo
echo "Attempting to get emsdk zlib/png ports"
echo
echo "" > silly.c
emcc silly.c -s USE_ZLIB=1 -s USE_LIBPNG=1 -s USE_FREETYPE=1
emcc silly.c -s USE_ZLIB=1 -s USE_LIBPNG=1 -s USE_FREETYPE=1 -s USE_PTHREADS=1 -pthread -sMEMORY64=1
rm -f silly.c
rm -f a.out.js
rm -f a.out.wasm
Expand All @@ -135,3 +135,11 @@ mkdir -p include
cd include
ln -s ../checkout/glm-$glm_release/glm glm
cd ..

cd checkout/coot-1.0
patch -p1 < ../../patches/coot-emscripten-64.patch
cd ../..

cd checkout/gemmi
patch -p1 < ../../patches/gemmi-emscripten-64.patch
cd ../..
9 changes: 9 additions & 0 deletions include/igraph_f2c_arith_64.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#define IEEE_8087
#define Arith_Kind_ASL 1
#define Long int
#define Intcast (int)(long)
#define Double_Align
#define X64_bit_pointers
#define NANCHECK
#define QNaN0 0x0
#define QNaN1 0xfff80000
86 changes: 54 additions & 32 deletions initial_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,77 +24,101 @@ echo "Sources are in ${SOURCE_DIR}"
echo "Building in ${BUILD_DIR}"
echo "Installing in ${INSTALL_DIR}"

MEMORY64=0

optspec=":-"
while getopts ':-:' OPT; do
case $OPT in
-) #long option
case $OPTARG in
64bit) MEMORY64=1;;
*) echo unknown long option: $OPTARG;;
esac;;
*) echo unknown short option: $OPTARG;;
esac
done

if test x"${MEMORY64}" = x"1"; then
echo "#######################################################"
echo "#######################################################"
echo "Building ** 64-bit ** (large memory) version of Moorhen"
echo "#######################################################"
echo "#######################################################"
echo
echo
MOORHEN_CMAKE_FLAGS="-sMEMORY64=1 -pthread"
else
echo "########################################"
echo "########################################"
echo "Building ** 32-bit ** version of Moorhen"
echo "########################################"
echo "########################################"
echo
echo
MOORHEN_CMAKE_FLAGS="-pthread"
fi

mkdir -p ${INSTALL_DIR}

#gsl
mkdir -p ${BUILD_DIR}/gsl_build
cd ${BUILD_DIR}/gsl_build
emconfigure ${SOURCE_DIR}/gsl-2.7.1/configure --prefix=${INSTALL_DIR}
emmake make LDFLAGS=-all-static -j ${NUMPROCS}
emmake make LDFLAGS=-all-static -j ${NUMPROCS} CXXFLAGS="${MOORHEN_CMAKE_FLAGS}" CFLAGS="${MOORHEN_CMAKE_FLAGS}"
emmake make install
cd ${BUILD_DIR}

#Boost (has to be built in source tree as far as I am aware)
cd ${SOURCE_DIR}/boost
./bootstrap.sh --with-libraries=serialization,regex,chrono,date_time,filesystem,iostreams,program_options,thread,math,random,system
./b2 toolset=emscripten link=static variant=release cxxflags="-pthread" linkflags="-pthread" threading=multi runtime-link=static thread system filesystem regex serialization chrono date_time program_options random -j ${NUMPROCS}
./b2 toolset=emscripten link=static variant=release cxxflags="-pthread" linkflags="-pthread" threading=multi runtime-link=static install --prefix=${INSTALL_DIR}
#boost with cmake
mkdir -p ${BUILD_DIR}/boost
cd ${BUILD_DIR}/boost
emcmake cmake -DCMAKE_C_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_CXX_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/checkout/boost-1.83.0 -DBOOST_EXCLUDE_LIBRARIES="context;fiber;fiber_numa;asio;log;coroutine;cobalt;nowide"
emmake make -j ${NUMPROCS}
emmake make install
cd ${BUILD_DIR}

emar q ${INSTALL_DIR}/lib/libboost_chrono.a ${INSTALL_DIR}/lib/libboost_chrono.bc
emar q ${INSTALL_DIR}/lib/libboost_date_time.a ${INSTALL_DIR}/lib/libboost_date_time.bc
emar q ${INSTALL_DIR}/lib/libboost_filesystem.a ${INSTALL_DIR}/lib/libboost_filesystem.bc
emar q ${INSTALL_DIR}/lib/libboost_iostreams.a ${INSTALL_DIR}/lib/libboost_iostreams.bc
emar q ${INSTALL_DIR}/lib/libboost_math_c99.a ${INSTALL_DIR}/lib/libboost_math_c99.bc
emar q ${INSTALL_DIR}/lib/libboost_math_c99f.a ${INSTALL_DIR}/lib/libboost_math_c99f.bc
emar q ${INSTALL_DIR}/lib/libboost_math_c99l.a ${INSTALL_DIR}/lib/libboost_math_c99l.bc
emar q ${INSTALL_DIR}/lib/libboost_math_tr1.a ${INSTALL_DIR}/lib/libboost_math_tr1.bc
emar q ${INSTALL_DIR}/lib/libboost_math_tr1f.a ${INSTALL_DIR}/lib/libboost_math_tr1f.bc
emar q ${INSTALL_DIR}/lib/libboost_math_tr1l.a ${INSTALL_DIR}/lib/libboost_math_tr1l.bc
emar q ${INSTALL_DIR}/lib/libboost_program_options.a ${INSTALL_DIR}/lib/libboost_program_options.bc
emar q ${INSTALL_DIR}/lib/libboost_random.a ${INSTALL_DIR}/lib/libboost_random.bc
emar q ${INSTALL_DIR}/lib/libboost_regex.a ${INSTALL_DIR}/lib/libboost_regex.bc
emar q ${INSTALL_DIR}/lib/libboost_serialization.a ${INSTALL_DIR}/lib/libboost_serialization.bc
emar q ${INSTALL_DIR}/lib/libboost_system.a ${INSTALL_DIR}/lib/libboost_system.bc
emar q ${INSTALL_DIR}/lib/libboost_wserialization.a ${INSTALL_DIR}/lib/libboost_wserialization.bc
emar q ${INSTALL_DIR}/lib/libboost_thread.a ${INSTALL_DIR}/lib/libboost_thread.bc

#RDKit
BOOST_CMAKE_STUFF=`for i in ${INSTALL_DIR}/lib/cmake/boost*; do j=${i%-1.83.0}; k=${j#${INSTALL_DIR}/lib/cmake/boost_}; echo -Dboost_${k}_DIR=$i; done`
mkdir -p ${BUILD_DIR}/rdkit_build
cd ${BUILD_DIR}/rdkit_build
emcmake cmake -Dboost_iostreams_DIR=${INSTALL_DIR}/lib/cmake/boost_iostreams-1.83.0/ -Dboost_system_DIR=${INSTALL_DIR}/lib/cmake/boost_system-1.83.0/ -Dboost_headers_DIR=${INSTALL_DIR}/lib/cmake/boost_headers-1.83.0/ -DBoost_DIR=${INSTALL_DIR}/lib/cmake/Boost-1.83.0 -DRDK_BUILD_PYTHON_WRAPPERS=OFF -DRDK_INSTALL_STATIC_LIBS=ON -DRDK_INSTALL_INTREE=OFF -DRDK_BUILD_SLN_SUPPORT=OFF -DRDK_TEST_MMFF_COMPLIANCE=OFF -DRDK_BUILD_CPP_TESTS=OFF -DRDK_USE_BOOST_SERIALIZATION=ON -DRDK_BUILD_THREADSAFE_SSS=OFF -DBoost_INCLUDE_DIR=${INSTALL_DIR}/include -DBoost_USE_STATIC_LIBS=ON -DBoost_USE_STATIC_RUNTIME=ON -DBoost_DEBUG=TRUE -DCMAKE_CXX_FLAGS="-s USE_PTHREADS=1 -pthread -Wno-enum-constexpr-conversion -D_HAS_AUTO_PTR_ETC=0" -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/rdkit -DRDK_OPTIMIZE_POPCNT=OFF -DRDK_INSTALL_COMIC_FONTS=OFF
emcmake cmake -DBoost_DIR=${INSTALL_DIR}/lib/cmake/Boost-1.83.0 ${BOOST_CMAKE_STUFF} -DRDK_BUILD_PYTHON_WRAPPERS=OFF -DRDK_INSTALL_STATIC_LIBS=ON -DRDK_INSTALL_INTREE=OFF -DRDK_BUILD_SLN_SUPPORT=OFF -DRDK_TEST_MMFF_COMPLIANCE=OFF -DRDK_BUILD_CPP_TESTS=OFF -DRDK_USE_BOOST_SERIALIZATION=ON -DRDK_BUILD_THREADSAFE_SSS=OFF -DBoost_INCLUDE_DIR=${INSTALL_DIR}/include -DBoost_USE_STATIC_LIBS=ON -DBoost_USE_STATIC_RUNTIME=ON -DBoost_DEBUG=TRUE -DCMAKE_CXX_FLAGS="${MOORHEN_CMAKE_FLAGS} -Wno-enum-constexpr-conversion -D_HAS_AUTO_PTR_ETC=0" -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/rdkit -DRDK_OPTIMIZE_POPCNT=OFF -DRDK_INSTALL_COMIC_FONTS=OFF -DCMAKE_C_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_MODULE_PATH=${INSTALL_DIR}/lib/cmake
emmake make -j ${NUMPROCS}
emmake make install
cd ${BUILD_DIR}

#gemmi
mkdir -p ${BUILD_DIR}/gemmi_build
cd ${BUILD_DIR}/gemmi_build
emcmake cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/gemmi
emcmake cmake -DCMAKE_EXE_LINKER_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_C_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_CXX_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/gemmi
emmake make -j ${NUMPROCS}
emmake make install
cd ${BUILD_DIR}

#jsoncpp
mkdir -p ${BUILD_DIR}/jsoncpp_build
cd ${BUILD_DIR}/jsoncpp_build
emcmake cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/checkout/jsoncpp -DJSONCPP_WITH_TESTS=OFF
emcmake cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/checkout/jsoncpp -DJSONCPP_WITH_TESTS=OFF -DCMAKE_C_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_CXX_FLAGS="${MOORHEN_CMAKE_FLAGS}"
emmake make -j ${NUMPROCS}
emmake make install
cd ${BUILD_DIR}

#igraph
mkdir -p ${BUILD_DIR}/igraph_build
cd ${BUILD_DIR}/igraph_build
emcmake cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/checkout/igraph -DCMAKE_CXX_FLAGS="-pthread" -DCMAKE_C_FLAGS="-pthread"
emmake make -j ${NUMPROCS}
if test x"${MEMORY64}" = x"1"; then
#There is some hoop-jumping to make igraph compile with "-sMEMORY64=1 -pthread"
emcmake cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/checkout/igraph -DCMAKE_C_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_CXX_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DIEEE754_DOUBLE_ENDIANNESS_MATCHES=ON -DF2C_EXTERNAL_ARITH_HEADER=${SOURCE_DIR}/include/igraph_f2c_arith_64.h
emmake make -j ${NUMPROCS} C_FLAGS="${MOORHEN_CMAKE_FLAGS} -Wno-error=experimental" CXX_FLAGS="${MOORHEN_CMAKE_FLAGS} -Wno-error=experimental"
else
emcmake cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}/checkout/igraph -DCMAKE_C_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_CXX_FLAGS="${MOORHEN_CMAKE_FLAGS}"
emmake make -j ${NUMPROCS}
fi
emmake make install
cd ${BUILD_DIR}

#Moorhen
mkdir -p ${BUILD_DIR}/moorhen_build
cd ${BUILD_DIR}/moorhen_build
emcmake cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}
emcmake cmake -DMEMORY64=${MEMORY64} -DCMAKE_EXE_LINKER_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_C_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_CXX_FLAGS="${MOORHEN_CMAKE_FLAGS}" -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} ${SOURCE_DIR}
emmake make -j ${NUMPROCS}
emmake make install
cd ${BUILD_DIR}
Expand All @@ -103,7 +127,5 @@ cd ${SOURCE_DIR}/baby-gru/
npm install
cd ${BUILD_DIR}

#*This link must be removed before building electron app!*
#Links cause confusion in Linux/Mac, and are followed on Windows making huge packages that take forever to build.
cd ${SOURCE_DIR}/baby-gru/public/baby-gru
ln -s ${SOURCE_DIR}/checkout/monomers
29 changes: 29 additions & 0 deletions patches/coot-emscripten-64.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
diff --git a/coot-utils/slurp-map.cc b/coot-utils/slurp-map.cc
index a432676fc..f1b60b823 100644
--- a/coot-utils/slurp-map.cc
+++ b/coot-utils/slurp-map.cc
@@ -110,12 +110,14 @@ coot::util::slurp_fill_xmap_from_map_file(const std::string &file_name,

bool is_gzip = false;
std::string ext = file_name_extension(file_name);
+#if !((__POINTER_WIDTH__==64) && __EMSCRIPTEN__)
if (ext == ".gz") is_gzip = true;

if (is_gzip) {
// this can fail (at the moment) if the axes are not in X,Y,Z order
status = slurp_fill_xmap_from_gz_map_file(file_name, xmap_p, check_only);
} else {
+#endif
// 20231006-PE as it used to be.
struct stat s;
int fstat = stat(file_name.c_str(), &s);
@@ -139,7 +141,9 @@ coot::util::slurp_fill_xmap_from_map_file(const std::string &file_name,
}
delete [] space;
}
+#if !((__POINTER_WIDTH__==64) && __EMSCRIPTEN__)
}
+#endif
} else {
std::cout << "WARNING:: file does not exist " << file_name << std::endl;
}
13 changes: 13 additions & 0 deletions patches/gemmi-emscripten-64.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/third_party/stb_sprintf.h b/third_party/stb_sprintf.h
index 28e9d64b..27429a8c 100644
--- a/third_party/stb_sprintf.h
+++ b/third_party/stb_sprintf.h
@@ -230,7 +230,7 @@ STBSP__PUBLICDEC void STB_SPRINTF_DECORATE(set_separators)(char comma, char peri
#define stbsp__uint16 unsigned short

#ifndef stbsp__uintptr
-#if defined(__ppc64__) || defined(__powerpc64__) || defined(__aarch64__) || defined(_M_X64) || defined(__x86_64__) || defined(__x86_64) || defined(__s390x__)
+#if defined(__ppc64__) || defined(__powerpc64__) || defined(__aarch64__) || defined(_M_X64) || defined(__x86_64__) || defined(__x86_64) || defined(__s390x__) || ((__POINTER_WIDTH__==64) && defined(__EMSCRIPTEN__))
#define stbsp__uintptr stbsp__uint64
#else
#define stbsp__uintptr stbsp__uint32
1 change: 0 additions & 1 deletion slicendice_cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
project(slicendice)


add_library(slicendice_cpp STATIC
${CMAKE_SOURCE_DIR}/checkout/slicendice_cpp/prog/extmath.cpp
${CMAKE_SOURCE_DIR}/checkout/slicendice_cpp/prog/dist_metrics.cpp
Expand Down
8 changes: 6 additions & 2 deletions wasm_src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ ${coot_src}/ideal/write-png.cc

target_include_directories(coot PRIVATE ${coot_src} ${coot_src}/coords ${coot_src}/ccp4mg-utils ${coot_src}/utils ${coot_src}/src ../include ../checkout/ssm ../checkout/mmdb2 ../checkout/clipper ../checkout/fftw-2.1.5/fftw ../checkout/fftw-2.1.5/rfftw ../checkout/libccp4/ccp4 ../boost ../checkout/gemmi/include )

set_target_properties(coot PROPERTIES COMPILE_FLAGS "-DHAVE_BOOST_BASED_THREAD_POOL_LIBRARY -Wno-deprecated-declarations -Wno-deprecated-builtins -pthread -DHAVE_CXX11=1 -DHAVE_SSMLIB -DHAVE_BOOST -DNODERAWFS -DFFTW_ENABLE_FLOAT -s USE_LIBPNG=1 -s USE_ZLIB=1 -s USE_PTHREADS=1" LINK_FLAGS "-fexceptions -pthread -s USE_LIBPNG=1 -s USE_ZLIB=1 -s USE_PTHREADS=1 -sDEMANGLE_SUPPORT=1 -sASSERTIONS=2")
set_target_properties(coot PROPERTIES COMPILE_FLAGS "-DHAVE_BOOST_BASED_THREAD_POOL_LIBRARY -Wno-deprecated-declarations -Wno-deprecated-builtins -pthread -DHAVE_CXX11=1 -DHAVE_SSMLIB -DHAVE_BOOST -DNODERAWFS -DFFTW_ENABLE_FLOAT -s USE_LIBPNG=1 -s USE_ZLIB=1 -s USE_PTHREADS=1" LINK_FLAGS "-fexceptions -pthread -s USE_LIBPNG=1 -s USE_ZLIB=1 -s USE_PTHREADS=1 -sASSERTIONS=2")

set_source_files_properties(${coot_exception_srcs} PROPERTIES COMPILE_FLAGS "-DHAVE_BOOST_BASED_THREAD_POOL_LIBRARY -fexceptions -pthread -DHAVE_SSMLIB -DHAVE_BOOST -DNODERAWFS -DFFTW_ENABLE_FLOAT -s USE_LIBPNG=1 -s USE_ZLIB=1 -s USE_PTHREADS=1" )

Expand Down Expand Up @@ -518,7 +518,11 @@ FILE(COPY ${CMAKE_INSTALL_PREFIX}/share/RDKit/Data/BaseFeatures.fdef DESTINATION

#-sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=512MB -sMAXIMUM_MEMORY=4092MB -sTOTAL_MEMORY=4092MB
add_executable(moorhen moorhen-wrappers.cc gemmi-wrappers.cc smilestopdb.cc)
target_link_options(moorhen PRIVATE -sDEMANGLE_SUPPORT=1 -sASSERTIONS=2 -fexceptions -pthread -sPTHREAD_POOL_SIZE=32 -sPTHREAD_POOL_SIZE_STRICT=32 -sUSE_PTHREADS=1 -sALLOW_MEMORY_GROWTH=1 --bind -sFORCE_FILESYSTEM=1 -sMODULARIZE=1 -sEXPORT_NAME=createRSRModule -sEXPORTED_RUNTIME_METHODS=['FS','readFile'] --preload-file data --pre-js ${CMAKE_CURRENT_SOURCE_DIR}/coot_env_web.js)
if(${MEMORY64} MATCHES "1")
target_link_options(moorhen PRIVATE -sASSERTIONS=2 -fexceptions -pthread -sPTHREAD_POOL_SIZE=32 -sPTHREAD_POOL_SIZE_STRICT=32 -sUSE_PTHREADS=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=4096MB -sMAXIMUM_MEMORY=8192MB --bind -sFORCE_FILESYSTEM=1 -sMODULARIZE=1 -sEXPORT_NAME=createRSRModule -sEXPORTED_RUNTIME_METHODS=['FS','readFile'] --preload-file data --pre-js ${CMAKE_CURRENT_SOURCE_DIR}/coot_env_web.js)
else()
target_link_options(moorhen PRIVATE -sASSERTIONS=2 -fexceptions -pthread -sPTHREAD_POOL_SIZE=32 -sPTHREAD_POOL_SIZE_STRICT=32 -sUSE_PTHREADS=1 -sALLOW_MEMORY_GROWTH=1 --bind -sFORCE_FILESYSTEM=1 -sMODULARIZE=1 -sEXPORT_NAME=createRSRModule -sEXPORTED_RUNTIME_METHODS=['FS','readFile'] --preload-file data --pre-js ${CMAKE_CURRENT_SOURCE_DIR}/coot_env_web.js)
endif()
target_link_directories(moorhen PUBLIC ../ssm ../mmdb2 ../clipper/cif ../clipper/mmdb ../clipper/core ../clipper/contrib ../clipper/ccp4 ../clipper/gemmi ../fftw ../rfftw ../ccp4 ../lib ../install/lib ../privateer)
target_link_libraries(moorhen ssm mmdb2 clipper-minimol clipper-phs clipper-mmdb clipper-cif clipper-core clipper-contrib clipper-ccp4 clipper-gemmi fftw rfftw ccp4 coot gsl gslcblas RDKitMolDraw2D RDKitForceFieldHelpers RDKitDescriptors RDKitForceField RDKitSubstructMatch RDKitOptimizer RDKitDistGeomHelpers RDKitDistGeometry RDKitChemReactions RDKitAlignment RDKitEigenSolvers RDKitDepictor RDKitcoordgen RDKitMolChemicalFeatures RDKitPartialCharges RDKitFileParsers RDKitRDGeometryLib RDKitGraphMol RDKitShapeHelpers RDKitFingerprints RDKitMolAlign RDKitMolTransforms RDKitChemTransforms RDKitSmilesParse RDKitFilterCatalog RDKitCatalogs RDKitSubgraphs RDKitRDGeneral RDKitDataStructs RDKitGenericGroups boost_thread boost_serialization gemmi_cpp privateer freetype slicendice_cpp jsoncpp igraph m z idbfs.js)
target_include_directories(moorhen PRIVATE ${coot_src} ${coot_src}/ccp4mg-utils ${coot_src}/src ../checkout/boost_1_80_0 ../checkout/clipper/ ../checkout/mmdb2 ../checkout/mmdb2/mmdb2 ../checkout/ssm ../checkout/libccp4/ccp4 ../fftw ../rfftw ../include ../checkout/gemmi/include ../checkout/privateer-wasm/src/privateer/cpp ../checkout/privateer-wasm/src/privateer/cpp/pybind11 ../checkout/privateer-wasm/src/privateer/cpp/third-party/simdjson ../checkout/slicendice_cpp/prog/ ../checkout/rdkit-Release_2023_09_1/External/Eigen/eigen/ )
Expand Down

0 comments on commit 4dc7fc4

Please sign in to comment.