As InChI 1.05 is officially out I've tinkered with RDKit build system a bit
to include the new version. Two updated files - CMakeLists.txt   and
download-inchi.sh
from External/INCHI-API/ are attached in case it may be useful to others.

Best regards,
Igor
add_custom_target(inchi_support ALL)

if(RDK_BUILD_INCHI_SUPPORT)
  # search system InChI
  find_package(Inchi)

  # check whether we have custom InChI source
  if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/INCHI_BASE/src/ichican2.c)
    message(STATUS  "Found InChI software locally")
    if(INCHI_FOUND)
      message(WARNING "** Local InChI software takes precedence when both 
system InChI and local InChI are found")
    endif(INCHI_FOUND)
    # cp --parents -auf INCHI_API/libinchi/src/ 
~/polymer/rdkit-master/External/INCHI-API/src/
    # cp --parents -auf INCHI_BASE/src 
~/polymer/rdkit-master/External/INCHI-API/src/
    rdkit_library(Inchi
src/INCHI_BASE/src/ichican2.c
src/INCHI_BASE/src/ichicano.c
src/INCHI_BASE/src/ichi_io.c
src/INCHI_BASE/src/ichierr.c
src/INCHI_BASE/src/ichicans.c
src/INCHI_BASE/src/ichiisot.c
src/INCHI_API/libinchi/src/ichilnct.c
src/INCHI_BASE/src/ichimak2.c
src/INCHI_BASE/src/ichimake.c
src/INCHI_BASE/src/ichimap1.c
src/INCHI_BASE/src/ichimap2.c
src/INCHI_BASE/src/ichimap4.c
src/INCHI_BASE/src/ichinorm.c
src/INCHI_BASE/src/ichiparm.c
src/INCHI_BASE/src/ichiprt1.c
src/INCHI_BASE/src/ichiprt2.c
src/INCHI_BASE/src/ichiprt3.c
src/INCHI_BASE/src/ichiqueu.c
src/INCHI_BASE/src/ichiring.c
src/INCHI_BASE/src/ichisort.c
src/INCHI_BASE/src/ichister.c
src/INCHI_BASE/src/ichitaut.c
src/INCHI_BASE/src/ichi_bns.c
src/INCHI_API/libinchi/src/inchi_dll.c
src/INCHI_BASE/src/ichiread.c
src/INCHI_BASE/src/ichirvr1.c
src/INCHI_BASE/src/ichirvr2.c
src/INCHI_BASE/src/ichirvr3.c
src/INCHI_BASE/src/ichirvr4.c
src/INCHI_BASE/src/ichirvr5.c
src/INCHI_BASE/src/ichirvr6.c
src/INCHI_BASE/src/ichirvr7.c
src/INCHI_BASE/src/ikey_dll.c
src/INCHI_BASE/src/ikey_base26.c
src/INCHI_API/libinchi/src/inchi_dll_main.c
src/INCHI_API/libinchi/src/inchi_dll_a.c
src/INCHI_API/libinchi/src/inchi_dll_a2.c
src/INCHI_API/libinchi/src/inchi_dll_b.c
src/INCHI_API/libinchi/src/ixa/ixa_inchikey_builder.c
src/INCHI_API/libinchi/src/ixa/ixa_read_mol.c
src/INCHI_API/libinchi/src/ixa/ixa_status.c
src/INCHI_API/libinchi/src/ixa/ixa_builder.c
src/INCHI_API/libinchi/src/ixa/ixa_mol.c
src/INCHI_API/libinchi/src/ixa/ixa_read_inchi.c
src/INCHI_BASE/src/mol_fmt1.c
src/INCHI_BASE/src/mol_fmt2.c
src/INCHI_BASE/src/mol_fmt3.c
src/INCHI_BASE/src/mol2atom.c
src/INCHI_BASE/src/mol_fmt4.c
src/INCHI_BASE/src/readinch.c
src/INCHI_BASE/src/runichi.c
src/INCHI_BASE/src/runichi2.c
src/INCHI_BASE/src/runichi3.c
src/INCHI_BASE/src/runichi4.c
src/INCHI_BASE/src/sha2.c
src/INCHI_BASE/src/strutil.c
src/INCHI_BASE/src/util.c  SHARED)
    install(TARGETS Inchi DESTINATION ${RDKit_LibDir})
    set(INCHI_LIBRARIES Inchi)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/INCHI_BASE/src/)
    ADD_DEFINITIONS("-DTARGET_API_LIB")
  else(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/INCHI_BASE/src/ichican2.c)
    if (INCHI_FOUND)
      include_directories(${INCHI_INCLUDE_DIR})
      ADD_DEFINITIONS("-DTARGET_API_LIB")
    else (INCHI_FOUND)
      # system InChI is missing
      message(WARNING  "** NO INCHI SOFTWARE FOUND\n"
              "InChI support will be turned off. If you want to add InChI 
support, please follow the instructions inside 
$RDBASE/External/INCHI-API/README to download a copy of InChI software and then 
rerun cmake.")
      set(RDK_BUILD_INCHI_SUPPORT OFF)
    endif(INCHI_FOUND)
  endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/INCHI_BASE/src/ichican2.c)

endif(RDK_BUILD_INCHI_SUPPORT)

# check whether InChI support is ON after the search
if(RDK_BUILD_INCHI_SUPPORT)
  rdkit_library(RDInchiLib inchi.cpp SHARED LINK_LIBRARIES ${INCHI_LIBRARIES} 
                GraphMol RDGeneral Depictor SubstructMatch SmilesParse 
                ${Boost_THREAD_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})           
  rdkit_headers(inchi.h DEST GraphMol)
  if(RDK_BUILD_PYTHON_WRAPPERS)
    add_subdirectory(Wrap)
  endif(RDK_BUILD_PYTHON_WRAPPERS)

  add_definitions(-DBUILD_INCHI_SUPPORT)

rdkit_test(testInchi test.cpp 
LINK_LIBRARIES 
${INCHI_LIBRARIES} 
   RDInchiLib ${INCHI_LIBRARIES} 
   FileParsers SmilesParse Descriptors Depictor SubstructMatch GraphMol 
   RDGeneral DataStructs RDGeneral RDGeometryLib 
   ${Boost_THREAD_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
endif(RDK_BUILD_INCHI_SUPPORT)

if(RDK_BUILD_PYTHON_WRAPPERS)
  # we need an inchi.py... copy in the appropriate one
  if(RDK_BUILD_INCHI_SUPPORT)
   add_custom_command(TARGET inchi_support
                  COMMAND ${CMAKE_COMMAND} -E copy 
${CMAKE_CURRENT_SOURCE_DIR}/python/inchi.py
                     ${CMAKE_SOURCE_DIR}/rdkit/Chem/inchi.py)
  else(RDK_BUILD_INCHI_SUPPORT)
    add_custom_command(TARGET inchi_support
                  COMMAND ${CMAKE_COMMAND} -E copy 
${CMAKE_CURRENT_SOURCE_DIR}/python/noinchi.py
                     ${CMAKE_SOURCE_DIR}/rdkit/Chem/inchi.py)
  endif(RDK_BUILD_INCHI_SUPPORT)
  get_directory_property(extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
  set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
          "${extra_clean_files};${CMAKE_SOURCE_DIR}/rdkit/Chem/inchi.py")
endif(RDK_BUILD_PYTHON_WRAPPERS)

Attachment: download-inchi.sh
Description: Bourne shell script

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-devel mailing list
Rdkit-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-devel

Reply via email to