/
CMakeLists.txt
57 lines (40 loc) · 1.91 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.1)
# Name of the project (will be the name of the plugin)
project (node-rdkit)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED OFF)
set(Boost_USE_STATIC_RUNTIME ON)
find_package( Boost COMPONENTS iostreams filesystem system)
find_package( Cairo REQUIRED )
find_package( RDKit COMPONENTS ChemReactions FileParsers SmilesParse Depictor RDGeometryLib
RDGeneral SubstructMatch Subgraphs MolDraw2D GraphMol DistGeometry DistGeomHelpers
MolAlign Optimizer ForceField ForceFieldHelpers Alignment
ForceField MolTransforms EigenSolvers )
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${RDKit_INCLUDE_DIR}/cmake/Modules/")
find_package (Threads)
set(RDKit_THREAD_LIBS Threads::Threads)
set( LIBS ${LIBS} ${RDKit_LIBRARIES} Boost::iostreams ${RDKit_THREAD_LIBS} z )
include_directories(${RDKit_INCLUDE_DIR})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
# Essential include files to build a node addon,
# you should add this line in every CMake.js based project.
include_directories(${CMAKE_JS_INC} "${CMAKE_SOURCE_DIR}/../node-addon-api")
# Declare the source files location
file(GLOB SOURCE_FILES "src/*.cc" "src/*.h")
# This line will tell CMake that we're building a shared library
# from the above source files
# named after the project's name
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES})
# This line will give our library file a .node extension
# without any "lib" prefix
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
# Include N-API wrappers
target_include_directories(${PROJECT_NAME}
PRIVATE ${CMAKE_JS_INC}
PRIVATE "${CMAKE_SOURCE_DIR}/node_modules/node-addon-api")
# Essential library files to link to a node addon,
# you should add this line in every CMake.js based project.
target_link_libraries(${PROJECT_NAME}
PRIVATE ${CMAKE_JS_LIB}
${LIBS})