File: CMakeLists.txt

package info (click to toggle)
rdkit 201809.1%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 123,688 kB
  • sloc: cpp: 230,509; python: 70,501; java: 6,329; ansic: 5,427; sql: 1,899; yacc: 1,739; lex: 1,243; makefile: 445; xml: 229; fortran: 183; sh: 123; cs: 93
file content (106 lines) | stat: -rwxr-xr-x 3,843 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
if(RDK_BUILD_AVALON_SUPPORT)
if(NOT DEFINED AVALONTOOLS_DIR)
  set(AVALONTOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution")
  set(fileToPatch "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution/common/reaccsio.c")
  set(needDownload "TRUE")
  if(EXISTS "${fileToPatch}")
    file(READ "${fileToPatch}" buffer)
    if("${buffer}" MATCHES "//MyFree\\(\\(char \\*\\)tempdir\\);")
      set(needDownload "FALSE")
    endif()
  endif()
else()
  string(REGEX REPLACE "\\\\" "/" AVALONTOOLS_DIR ${AVALONTOOLS_DIR})
  set(needDownload "FALSE")
endif()

set(AVALON_SRC_PATH ${AVALONTOOLS_DIR}/common)

if(needDownload)
  if(NOT DEFINED AVALONTOOLS_URL)
    set(AVALONTOOLS_URL "http://sourceforge.net/projects/avalontoolkit/files/AvalonToolkit_1.2/AvalonToolkit_1.2.0.source.tar")
  endif()
  if(NOT DEFINED AVALONTOOLS_MD5SUM)
    set(AVALONTOOLS_MD5SUM "092a94f421873f038aa67d4a6cc8cb54")
  endif()
  if(NOT DEFINED AVALONTOOLS_BASE)
    string(REGEX REPLACE "^.*/" "" AVALONTOOLS_BASE "${AVALONTOOLS_URL}")
  endif()
  downloadAndCheckMD5(${AVALONTOOLS_URL} "${CMAKE_CURRENT_SOURCE_DIR}/${AVALONTOOLS_BASE}" ${AVALONTOOLS_MD5SUM})
  execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf
    ${CMAKE_CURRENT_SOURCE_DIR}/AvalonToolkit_1.2.0.source.tar
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
  # apply patch to AvalonTools
  configure_file("${fileToPatch}" "${fileToPatch}.orig" COPYONLY)
  file(READ "${fileToPatch}" buffer)
  string(REGEX REPLACE "MyFree\\(\\(char \\*\\)tempdir\\);"
    "//MyFree((char *)tempdir);" buffer "${buffer}")
  file(WRITE "${fileToPatch}" "${buffer}")
endif()

add_definitions(-DRDK_BUILD_AVALON_SUPPORT)
if (MSVC)
  add_definitions( "/D_CRT_SECURE_NO_WARNINGS /wd4224 /wd4101 /wd4018 /wd4996 /wd4244 /wd4305 /wd4013 /wd4146 /wd4334 /wd4715 /wd4715  /nologo" )
endif(MSVC)

set(avalon_clib_srcs ${AVALON_SRC_PATH}/layout.c
	${AVALON_SRC_PATH}/symboltable.c
	${AVALON_SRC_PATH}/patclean.c
	${AVALON_SRC_PATH}/utilities.c
	${AVALON_SRC_PATH}/symbol_lists.c
	${AVALON_SRC_PATH}/stereo.c
	${AVALON_SRC_PATH}/set.c
	${AVALON_SRC_PATH}/perceive.c
	${AVALON_SRC_PATH}/local.c
	${AVALON_SRC_PATH}/graph.c
	${AVALON_SRC_PATH}/geometry.c
	${AVALON_SRC_PATH}/forio.c
	${AVALON_SRC_PATH}/depictutil.c
	${AVALON_SRC_PATH}/denormal.c
	${AVALON_SRC_PATH}/casutils.c
	${AVALON_SRC_PATH}/ssmatch.c
	${AVALON_SRC_PATH}/rtutils.c
	${AVALON_SRC_PATH}/smi2mol.c
	${AVALON_SRC_PATH}/didepict.c
	${AVALON_SRC_PATH}/pattern.c
	${AVALON_SRC_PATH}/canonizer.c
	${AVALON_SRC_PATH}/aacheck.c
	${AVALON_SRC_PATH}/fixcharges.c
	${AVALON_SRC_PATH}/struchk.c
	${AVALON_SRC_PATH}/reaccsio.c
	${AVALON_SRC_PATH}/hashcode.c
  )

# we need this to ensure that builds continue
# to work on linux systems with older versions
# of glibc when we're building with gcc-4.1.
# Without this flag, we'll endup requiring
# glibc 2.7.
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    add_definitions(-D_GNU_SOURCE=1)
endif()

     if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-parentheses -Wno-logical-op-parentheses -Wno-dangling-else -Wno-format")
     endif()


rdkit_library(avalon_clib ${avalon_clib_srcs})
if((MSVC AND RDK_INSTALL_DLLS_MSVC) OR ((NOT MSVC) AND WIN32))
  set_target_properties(avalon_clib PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
endif()

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${AVALON_SRC_PATH})

add_definitions(-DRDKIT_AVALONLIB_BUILD)
rdkit_library(AvalonLib AvalonTools.cpp SHARED LINK_LIBRARIES avalon_clib FileParsers SmilesParse GraphMol DataStructs RDGeometryLib RDGeneral )
rdkit_headers(AvalonTools.h DEST GraphMol)
rdkit_test(testAvalonLib1 test1.cpp
           LINK_LIBRARIES AvalonLib avalon_clib
	   SubstructMatch
	   FileParsers SmilesParse GraphMol DataStructs RDGeometryLib RDGeneral)

add_subdirectory(Wrap)

endif(RDK_BUILD_AVALON_SUPPORT)