-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCMakeLists.txt
executable file
·77 lines (63 loc) · 2.88 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
cmake_minimum_required(VERSION 3.7)
project(nblock_ecap_adapter)
add_definitions(-DPACKAGE_NAME="\\"nBlock\ ecap\ adapter\\"")
add_definitions(-DPACKAGE_VERSION="\\"0.01\\"")
# Set the output folder where your program will be created
set(MODDIR "/usr/local/lib/")
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
############################################################
# ad-block #
############################################################
# Include some stuff
include_directories("/usr/include/nodejs/src/")
include_directories("/usr/include/nodejs/deps/v8/include/")
include_directories("src/node_modules/ad-block/node_modules/bloom-filter-cpp")
include_directories("src/node_modules/ad-block/node_modules/hashset-cpp")
set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -std=c++11 -stdlib=libc++ -v")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
add_library("ad-block" STATIC
src/node_modules/ad-block/addon.cc
src/node_modules/ad-block/ad_block_client_wrap.cc
src/node_modules/ad-block/ad_block_client.cc
src/node_modules/ad-block/cosmetic_filter.cc
src/node_modules/ad-block/filter.cc
src/node_modules/ad-block/node_modules/bloom-filter-cpp/BloomFilter.cpp
src/node_modules/ad-block/node_modules/bloom-filter-cpp/hashFn.cpp
src/node_modules/ad-block/node_modules/hashset-cpp/HashSet.cpp
)
############################################################
# ecap Adapter #
############################################################
# Include some stuff
include_directories("src/node_modules/ad-block/")
include_directories("src/node_modules/ad-block/node_modules/bloom-filter-cpp")
include_directories("src/node_modules/ad-block/node_modules/hashset-cpp")
file(GLOB SOURCES "src/*.cc")
add_library(${PROJECT_NAME} SHARED ${SOURCES})
find_package(PkgConfig)
PKG_CHECK_MODULES(LIBECAP libecap)
IF(NOT LIBECAP_FOUND)
find_library(LIBECAP ecap)
IF(NOT LIBECAP)
message(FATAL_ERROR "
The ECAP library is required to build nBlock.
The latest version is available at http://www.e-cap.org/.
For debian 'sudo apt-get install libecap3'"
)
ENDIF()
set(LIBECAP_LDFLAGS "-lecap")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DV003")
ELSE()
IF(NOT LIBECAP_VERSION VERSION_LESS "1.0.0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DV100")
ENDIF()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLIBECAP_VERSION=\\\"${LIBECAP_VERSION}\\\"")
ENDIF()
include_directories(${LIBECAP_INCLUDE_DIRS})
set ( LIBADBLOCK_LINK_LIB ad-block )
link_directories( build/ )
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} ${LIBECAP_LDFLAGS} ${LIBADBLOCK_LINK_LIB})
INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${MODDIR})