1 cmake_minimum_required(VERSION 3.8)
5 add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
9 find_package(OpenSSL REQUIRED)
10 find_path(JANSSON_INCLUDE_DIR NAMES jansson.h)
11 find_library(JANSSON_LIBRARY NAMES jansson)
20 set(PROC_PLATFORM_SOURCE "libyara/proc/none.c")
21 set(PROC_PLATFORM_INTERFACE "USE_NO_PROC")
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")
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
69 ${PROC_PLATFORM_SOURCE}
96 find_package(Threads REQUIRED)
106 IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
107 list(APPEND libyara_dependencies Crypt32.lib Ws2_32.lib)
109 if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
110 list(APPEND libyara_dependencies m)
116 -D${PROC_PLATFORM_INTERFACE}
122 add_library(libyara ${libyara_sources})
123 target_link_libraries(libyara PRIVATE ${libyara_dependencies})
124 target_compile_definitions(libyara PRIVATE ${libyara_definitions})
127 add_executable(yara ${yara_sources})
128 add_executable(yarac ${yarac_sources})
130 target_link_libraries(yarac PRIVATE libyara ${libyara_dependencies})
131 target_link_libraries(yara PRIVATE libyara ${libyara_dependencies})
135 RUNTIME DESTINATION bin
136 LIBRARY DESTINATION lib
137 ARCHIVE DESTINATION lib
140 if(NOT DISABLE_INSTALL_TOOLS)
143 RUNTIME DESTINATION tools/yara
147 if(NOT DISABLE_INSTALL_HEADERS)
148 install(DIRECTORY libyara/include/ DESTINATION include)