]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/yara/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / yara / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.8)
2 project(yara C)
3
4 if(MSVC)
5 add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
6 endif()
7
8
9 find_package(OpenSSL REQUIRED)
10 find_path(JANSSON_INCLUDE_DIR NAMES jansson.h)
11 find_library(JANSSON_LIBRARY NAMES jansson)
12
13
14 include_directories(
15 .
16 libyara
17 libyara/include
18 )
19
20 set(PROC_PLATFORM_SOURCE "libyara/proc/none.c")
21 set(PROC_PLATFORM_INTERFACE "USE_NO_PROC")
22
23 if(APPLE AND CMAKE_SYSTEM_NAME MATCHES "Darwin")
24 set(PROC_PLATFORM_SOURCE "libyara/proc/mach.c")
25 set(PROC_PLATFORM_INTERFACE "USE_MACH_PROC")
26 elseif(WIN32 OR MINGW OR CYGWIN)
27 set(PROC_PLATFORM_SOURCE "libyara/proc/windows.c")
28 set(PROC_PLATFORM_INTERFACE "USE_WINDOWS_PROC")
29 elseif(UNIX AND CMAKE_SYSTEM_NAME MATCHES "Linux")
30 set(THREADS_PREFER_PTHREAD_FLAG TRUE)
31 set(PROC_PLATFORM_SOURCE "libyara/proc/linux.c")
32 set(PROC_PLATFORM_INTERFACE "USE_LINUX_PROC")
33 endif()
34
35 set(
36 libyara_sources
37 libyara/ahocorasick.c
38 libyara/arena.c
39 libyara/atoms.c
40 libyara/base64.c
41 libyara/bitmask.c
42 libyara/compiler.c
43 libyara/endian.c
44 libyara/exec.c
45 libyara/exefiles.c
46 libyara/filemap.c
47 libyara/grammar.c
48 libyara/hash.c
49 libyara/hex_grammar.c
50 libyara/hex_lexer.c
51 libyara/lexer.c
52 libyara/libyara.c
53 libyara/mem.c
54 libyara/modules.c
55 libyara/modules/cuckoo/cuckoo.c
56 libyara/modules/dotnet/dotnet.c
57 libyara/modules/elf/elf.c
58 libyara/modules/hash/hash.c
59 libyara/modules/math/math.c
60 libyara/modules/macho/macho.c
61 libyara/modules/pe/pe.c
62 libyara/modules/pe/pe_utils.c
63 libyara/modules/tests/tests.c
64 libyara/modules/time/time.c
65 libyara/notebook.c
66 libyara/object.c
67 libyara/parser.c
68 libyara/proc.c
69 ${PROC_PLATFORM_SOURCE}
70 libyara/re.c
71 libyara/re_grammar.c
72 libyara/re_lexer.c
73 libyara/rules.c
74 libyara/scan.c
75 libyara/scanner.c
76 libyara/sizedstr.c
77 libyara/stack.c
78 libyara/stopwatch.c
79 libyara/stream.c
80 libyara/strutils.c
81 libyara/threading.c
82 )
83
84 set(
85 yara_sources
86 cli/args.c
87 cli/threading.c
88 cli/yara.c
89 )
90 set( yarac_sources
91 cli/args.c
92 cli/yarac.c
93 )
94
95
96 find_package(Threads REQUIRED)
97
98 set(
99 libyara_dependencies
100 OpenSSL::SSL
101 OpenSSL::Crypto
102 Threads::Threads
103 ${JANSSON_LIBRARY}
104 )
105
106 IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
107 list(APPEND libyara_dependencies Crypt32.lib Ws2_32.lib)
108 endif()
109 if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
110 list(APPEND libyara_dependencies m)
111 endif()
112
113 set(
114 libyara_definitions
115 -DHAVE_LIBCRYPTO
116 -D${PROC_PLATFORM_INTERFACE}
117 -DCUCKOO_MODULE
118 -DHASH_MODULE
119 -DDOTNET_MODULE
120 )
121
122 add_library(libyara ${libyara_sources})
123 target_link_libraries(libyara PRIVATE ${libyara_dependencies})
124 target_compile_definitions(libyara PRIVATE ${libyara_definitions})
125
126
127 add_executable(yara ${yara_sources})
128 add_executable(yarac ${yarac_sources})
129
130 target_link_libraries(yarac PRIVATE libyara ${libyara_dependencies})
131 target_link_libraries(yara PRIVATE libyara ${libyara_dependencies})
132
133 install(
134 TARGETS libyara
135 RUNTIME DESTINATION bin
136 LIBRARY DESTINATION lib
137 ARCHIVE DESTINATION lib
138 )
139
140 if(NOT DISABLE_INSTALL_TOOLS)
141 install (
142 TARGETS yarac yara
143 RUNTIME DESTINATION tools/yara
144 )
145 endif()
146
147 if(NOT DISABLE_INSTALL_HEADERS)
148 install(DIRECTORY libyara/include/ DESTINATION include)
149 endif()