File: CMakeLists.txt

package info (click to toggle)
rdkit 202503.1-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 220,160 kB
  • sloc: cpp: 399,240; python: 77,453; ansic: 25,517; java: 8,173; javascript: 4,005; sql: 2,389; yacc: 1,565; lex: 1,263; cs: 1,081; makefile: 580; xml: 229; fortran: 183; sh: 105
file content (84 lines) | stat: -rw-r--r-- 3,734 bytes parent folder | download | duplicates (2)
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
set(FLEX_VERSION 2.6.4)

if (RDK_USE_FLEXBISON)
  FIND_PACKAGE(BISON 3.8.2 REQUIRED)
  FIND_PACKAGE(FLEX ${FLEX_VERSION} REQUIRED)
else(RDK_USE_FLEXBISON)
  set(FLEX_EXECUTABLE "")
  set(BISON_EXECUTABLE "")
endif(RDK_USE_FLEXBISON)

if(MSVC)
ADD_DEFINITIONS("/D YY_NO_UNISTD_H")
endif()

if(CMAKE_COMPILER_IS_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 15)
# the output from bison triggers some warnings we can safely ignore with clang 16+
set_source_files_properties(smarts.tab.cpp smiles.tab.cpp PROPERTIES COMPILE_OPTIONS "-Wno-unused-but-set-variable")
endif()

if(FLEX_EXECUTABLE)
  FLEX_TARGET(SmilesL smiles.ll
              ${CMAKE_CURRENT_SOURCE_DIR}/lex.yysmiles.cpp
             COMPILE_FLAGS "-Pyysmiles_ --noline" )
  FLEX_TARGET(SmartsL smarts.ll
              ${CMAKE_CURRENT_SOURCE_DIR}/lex.yysmarts.cpp
              COMPILE_FLAGS "-Pyysmarts_" )
  SET(FLEX_OUTPUT_FILES ${FLEX_SmilesL_OUTPUTS} ${FLEX_SmartsL_OUTPUTS})
else(FLEX_EXECUTABLE)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/lex.yysmiles.cpp.cmake
                 ${CMAKE_CURRENT_SOURCE_DIR}/lex.yysmiles.cpp COPYONLY)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/lex.yysmarts.cpp.cmake
                 ${CMAKE_CURRENT_SOURCE_DIR}/lex.yysmarts.cpp COPYONLY)
  FILE(GLOB FLEX_OUTPUT_FILES "${CMAKE_CURRENT_SOURCE_DIR}/lex.*.cpp")
endif(FLEX_EXECUTABLE)

if(BISON_EXECUTABLE)
  BISON_TARGET(SmilesY smiles.yy
               ${CMAKE_CURRENT_SOURCE_DIR}/smiles.tab.cpp
               COMPILE_FLAGS "-pyysmiles_ --no-lines" )
  BISON_TARGET(SmartsY smarts.yy
               ${CMAKE_CURRENT_SOURCE_DIR}/smarts.tab.cpp
               COMPILE_FLAGS "-pyysmarts_" )
  SET(BISON_OUTPUT_FILES ${BISON_SmilesY_OUTPUTS} ${BISON_SmartsY_OUTPUTS})
  if(FLEX_EXECUTABLE)
    ADD_FLEX_BISON_DEPENDENCY(SmilesL SmilesY)
    ADD_FLEX_BISON_DEPENDENCY(SmartsL SmartsY)
  endif(FLEX_EXECUTABLE)
else(BISON_EXECUTABLE)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/smiles.tab.hpp.cmake
                 ${CMAKE_CURRENT_SOURCE_DIR}/smiles.tab.hpp COPYONLY)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/smiles.tab.cpp.cmake
                 ${CMAKE_CURRENT_SOURCE_DIR}/smiles.tab.cpp COPYONLY)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/smarts.tab.hpp.cmake
                 ${CMAKE_CURRENT_SOURCE_DIR}/smarts.tab.hpp COPYONLY)
  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/smarts.tab.cpp.cmake
                 ${CMAKE_CURRENT_SOURCE_DIR}/smarts.tab.cpp COPYONLY)
  FILE(GLOB BISON_OUTPUT_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.tab.?pp")
endif(BISON_EXECUTABLE)


rdkit_library(SmilesParse
              SmilesParse.cpp SmilesParseOps.cpp
              SmilesWrite.cpp SmartsWrite.cpp CXSmilesOps.cpp
              CanonicalizeStereoGroups.cpp SmilesJSONParsers.cpp
              ${BISON_OUTPUT_FILES}
              ${FLEX_OUTPUT_FILES}
              LINK_LIBRARIES GraphMol RDGeneral)
target_compile_definitions(SmilesParse PRIVATE RDKIT_SMILESPARSE_BUILD)

rdkit_headers(SmartsWrite.h
              SmilesParse.h
              SmilesParseOps.h
              SmilesWrite.h 
              CanonicalizeStereoGroups.h
              SmilesJSONParsers.h DEST GraphMol/SmilesParse)
            
rdkit_test(smiTest1 test.cpp LINK_LIBRARIES FileParsers SmilesParse )
rdkit_test(smiTest2 test2.cpp LINK_LIBRARIES SmilesParse )
rdkit_catch_test(cxsmilesTest cxsmiles_test.cpp LINK_LIBRARIES FileParsers SmilesParse MarvinParser )

rdkit_test(smaTest1 smatest.cpp LINK_LIBRARIES SmilesParse SubstructMatch  )
rdkit_catch_test(smiTestCatch catch_tests.cpp LINK_LIBRARIES FileParsers SmilesParse )
rdkit_catch_test(nontetrahedralCatch nontetrahedral_tests.cpp LINK_LIBRARIES FileParsers SmilesParse )
rdkit_catch_test(v2smiTestCatch v2catch_tests.cpp LINK_LIBRARIES SmilesParse )