- allows coordgen and maeparser to be built as static libraries (#1909)

This commit is contained in:
Paolo Tosco
2018-06-14 04:43:59 +01:00
committed by Greg Landrum
parent 833bf6335a
commit 45499c7bca
2 changed files with 22 additions and 6 deletions

View File

@@ -273,3 +273,20 @@ function(createExportTestHeaders)
overwriteIfChanged("${CMAKE_BINARY_DIR}/${exportPath}" "${CMAKE_SOURCE_DIR}/${exportPath}")
overwriteIfChanged("${CMAKE_BINARY_DIR}/${testPath}" "${CMAKE_SOURCE_DIR}/${testPath}")
endfunction(createExportTestHeaders)
function(patchCoordGenMaeExportHeaders keyword path)
file(APPEND "${path}"
"// appended by CMake patchCoordGenMaeExportHeaders\n"
"#if !defined(RDKIT_DYN_LINK) || defined(SWIG)\n"
"#ifdef EXPORT_${keyword}\n"
"#undef EXPORT_${keyword}\n"
"#endif\n"
"#define EXPORT_${keyword}\n"
"#endif\n"
"#ifndef SWIG\n"
"#ifdef _MSC_VER\n"
"#pragma warning(disable:4251)\n"
"#pragma warning(disable:4275)\n"
"#endif\n"
"#endif\n")
endfunction(patchCoordGenMaeExportHeaders)

View File

@@ -1,6 +1,9 @@
add_custom_target(coordgen_support ALL)
if(RDK_BUILD_COORDGEN_SUPPORT)
add_definitions(-DIN_MAEPARSER)
add_definitions(-DIN_COORDGEN)
include(RDKitUtils)
if(NOT DEFINED MAEPARSER_DIR)
set(MAEPARSER_DIR "${CMAKE_CURRENT_SOURCE_DIR}/maeparser")
endif()
@@ -13,15 +16,13 @@ if(RDK_BUILD_COORDGEN_SUPPORT)
${CMAKE_CURRENT_SOURCE_DIR}/master.tar.gz
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
file(RENAME "maeparser-${RELEASE_NO}" "${MAEPARSER_DIR}")
patchCoordGenMaeExportHeaders("MAEPARSER" "${MAEPARSER_DIR}/MaeParserConfig.hpp")
else()
message("-- Found MAEParser source in ${MAEPARSER_DIR}")
endif()
file(GLOB MAESOURCES "${MAEPARSER_DIR}/*.cpp")
rdkit_library(maeparser ${MAESOURCES} SHARED )
if((MSVC AND RDK_INSTALL_DLLS_MSVC) OR ((NOT MSVC) AND WIN32))
set_target_properties(maeparser PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
endif()
install(TARGETS maeparser DESTINATION ${RDKit_LibDir})
if(NOT DEFINED COORDGEN_DIR)
@@ -37,15 +38,13 @@ if(RDK_BUILD_COORDGEN_SUPPORT)
${CMAKE_CURRENT_SOURCE_DIR}/master.tar.gz
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
file(RENAME "coordgenlibs-${RELEASE_NO}" "${COORDGEN_DIR}")
patchCoordGenMaeExportHeaders("COORDGEN" "${COORDGEN_DIR}/CoordgenConfig.hpp")
else()
message("-- Found coordgenlibs source in ${COORDGEN_DIR}")
endif()
file(GLOB CGSOURCES "${COORDGEN_DIR}/*.cpp")
rdkit_library(coordgenlib ${CGSOURCES} SHARED LINK_LIBRARIES maeparser)
if((MSVC AND RDK_INSTALL_DLLS_MSVC) OR ((NOT MSVC) AND WIN32))
set_target_properties(coordgenlib PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
endif()
install(TARGETS coordgenlib DESTINATION ${RDKit_LibDir})
set(MAE_FILES ${COORDGEN_DIR}/templates.mae )