mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-03 21:44:30 +08:00
Make sure that FreeSASA can be built as DLL on Windows (#7985)
* - Make sure that FreeSASA can be built as DLL on Windows (MSVC & MinGW compilers) - avoid an unnecessary code patch by using only a .def file for exporting symbols * get the Windows DLL build to work with either MSVC or MinGW compilers
This commit is contained in:
88
External/FreeSASA/CMakeLists.txt
vendored
88
External/FreeSASA/CMakeLists.txt
vendored
@@ -54,6 +54,85 @@ if((MSVC AND RDK_INSTALL_DLLS_MSVC) OR ((NOT MSVC) AND WIN32))
|
||||
set(freesasa_additional_exports ${CMAKE_CURRENT_SOURCE_DIR}/additional_exports.def)
|
||||
file(WRITE ${freesasa_additional_exports}
|
||||
"EXPORTS\n"
|
||||
"freesasa_calc_structure\n"
|
||||
"freesasa_calc_coord\n"
|
||||
"freesasa_calc_tree\n"
|
||||
"freesasa_result_classes\n"
|
||||
"freesasa_result_free\n"
|
||||
"freesasa_classifier_from_file\n"
|
||||
"freesasa_classifier_free\n"
|
||||
"freesasa_classifier_radius\n"
|
||||
"freesasa_classifier_class\n"
|
||||
"freesasa_classifier_class2str\n"
|
||||
"freesasa_classifier_name\n"
|
||||
"freesasa_selection_new\n"
|
||||
"freesasa_selection_free\n"
|
||||
"freesasa_selection_name\n"
|
||||
"freesasa_selection_command\n"
|
||||
"freesasa_selection_area\n"
|
||||
"freesasa_set_verbosity\n"
|
||||
"freesasa_get_verbosity\n"
|
||||
"freesasa_set_err_out\n"
|
||||
"freesasa_get_err_out\n"
|
||||
"freesasa_structure_new\n"
|
||||
"freesasa_structure_free\n"
|
||||
"freesasa_structure_from_pdb\n"
|
||||
"freesasa_structure_array\n"
|
||||
"freesasa_structure_add_atom\n"
|
||||
"freesasa_structure_add_atom_wopt\n"
|
||||
"freesasa_structure_get_chains\n"
|
||||
"freesasa_structure_chain_labels\n"
|
||||
"freesasa_structure_n\n"
|
||||
"freesasa_structure_n_residues\n"
|
||||
"freesasa_structure_n_chains\n"
|
||||
"freesasa_structure_radius\n"
|
||||
"freesasa_structure_set_radius\n"
|
||||
"freesasa_structure_atom_name\n"
|
||||
"freesasa_structure_atom_res_name\n"
|
||||
"freesasa_structure_atom_res_number\n"
|
||||
"freesasa_structure_atom_chain\n"
|
||||
"freesasa_structure_atom_symbol\n"
|
||||
"freesasa_structure_atom_radius\n"
|
||||
"freesasa_structure_atom_set_radius\n"
|
||||
"freesasa_structure_residue_name\n"
|
||||
"freesasa_structure_residue_number\n"
|
||||
"freesasa_structure_residue_chain\n"
|
||||
"freesasa_structure_model\n"
|
||||
"freesasa_structure_coord_array\n"
|
||||
"freesasa_structure_residue_atoms\n"
|
||||
"freesasa_structure_chain_atoms\n"
|
||||
"freesasa_structure_chain_residues\n"
|
||||
"freesasa_structure_classifier_name\n"
|
||||
"freesasa_tree_new\n"
|
||||
"freesasa_tree_init\n"
|
||||
"freesasa_tree_add_result\n"
|
||||
"freesasa_tree_join\n"
|
||||
"freesasa_tree_export\n"
|
||||
"freesasa_node_free\n"
|
||||
"freesasa_node_area\n"
|
||||
"freesasa_node_children\n"
|
||||
"freesasa_node_next\n"
|
||||
"freesasa_node_parent\n"
|
||||
"freesasa_node_type\n"
|
||||
"freesasa_node_name\n"
|
||||
"freesasa_node_classified_by\n"
|
||||
"freesasa_node_atom_is_polar\n"
|
||||
"freesasa_node_atom_is_mainchain\n"
|
||||
"freesasa_node_atom_radius\n"
|
||||
"freesasa_node_atom_pdb_line\n"
|
||||
"freesasa_node_residue_number\n"
|
||||
"freesasa_node_residue_n_atoms\n"
|
||||
"freesasa_node_residue_reference\n"
|
||||
"freesasa_node_chain_n_residues\n"
|
||||
"freesasa_node_structure_n_chains\n"
|
||||
"freesasa_node_structure_n_atoms\n"
|
||||
"freesasa_node_structure_chain_labels\n"
|
||||
"freesasa_node_structure_model\n"
|
||||
"freesasa_node_structure_result\n"
|
||||
"freesasa_node_structure_selections\n"
|
||||
"freesasa_node_structure_add_selection\n"
|
||||
"freesasa_node_result_parameters\n"
|
||||
"freesasa_select_area\n"
|
||||
"freesasa_default_parameters DATA\n"
|
||||
"freesasa_protor_classifier DATA\n"
|
||||
"freesasa_naccess_classifier DATA\n"
|
||||
@@ -69,9 +148,14 @@ set (freesasa_h ${FREESASA_SRC_DIR}/src/freesasa.h)
|
||||
file(READ ${freesasa_h} freesasa_h_data)
|
||||
if (NOT freesasa_h_data MATCHES "RDGeneral/export")
|
||||
string(REGEX REPLACE "(#include <stdio.h>)" "\\1\n#include <RDGeneral/export.h>" freesasa_h_data "${freesasa_h_data}")
|
||||
string(REGEX REPLACE "([^R][^D][^K][^I][^T][^_][^F][^R][^E][^E][^S][^A][^S][^A][^_][^C][^L][^I][^B][^_][^E][^X][^P][^O][^R][^T][^ ])(extern const)" "\\1RDKIT_FREESASA_CLIB_EXPORT \\2" freesasa_h_data "${freesasa_h_data}")
|
||||
file(WRITE ${freesasa_h} "${freesasa_h_data}")
|
||||
endif()
|
||||
if (MSVC)
|
||||
set (RDKIT_FREESASA_CLIB_EXPORT "RDKIT_FREESASA_CLIB_EXPORT ")
|
||||
else()
|
||||
set (RDKIT_FREESASA_CLIB_EXPORT "")
|
||||
endif()
|
||||
string(REGEX REPLACE "(RDKIT_FREESASA_CLIB_EXPORT )?(extern const)" "${RDKIT_FREESASA_CLIB_EXPORT}\\2" freesasa_h_data "${freesasa_h_data}")
|
||||
file(WRITE ${freesasa_h} "${freesasa_h_data}")
|
||||
|
||||
add_definitions(-DUSE_THREADS=0)
|
||||
add_definitions(-DUSE_JSON=0)
|
||||
|
||||
Reference in New Issue
Block a user