aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/yara/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/yara/CMakeLists.txt')
-rw-r--r--vcpkg/ports/yara/CMakeLists.txt183
1 files changed, 183 insertions, 0 deletions
diff --git a/vcpkg/ports/yara/CMakeLists.txt b/vcpkg/ports/yara/CMakeLists.txt
new file mode 100644
index 0000000..3f3ed1e
--- /dev/null
+++ b/vcpkg/ports/yara/CMakeLists.txt
@@ -0,0 +1,183 @@
+cmake_minimum_required(VERSION 3.8)
+project(yara C)
+
+if(MSVC)
+ add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
+else()
+ find_library(HAVE_LIBM NAMES m)
+endif()
+
+
+find_package(OpenSSL REQUIRED)
+
+include_directories(
+ .
+ libyara
+ libyara/include
+)
+
+set(PROC_PLATFORM_SOURCE "libyara/proc/none.c")
+set(PROC_PLATFORM_INTERFACE "USE_NO_PROC")
+
+if(APPLE AND CMAKE_SYSTEM_NAME MATCHES "Darwin")
+ set(PROC_PLATFORM_SOURCE "libyara/proc/mach.c")
+ set(PROC_PLATFORM_INTERFACE "USE_MACH_PROC")
+elseif(WIN32 OR MINGW OR CYGWIN)
+ set(PROC_PLATFORM_SOURCE "libyara/proc/windows.c")
+ set(PROC_PLATFORM_INTERFACE "USE_WINDOWS_PROC")
+elseif(UNIX AND CMAKE_SYSTEM_NAME MATCHES "Linux")
+ set(THREADS_PREFER_PTHREAD_FLAG TRUE)
+ set(PROC_PLATFORM_SOURCE "libyara/proc/linux.c")
+ set(PROC_PLATFORM_INTERFACE "USE_LINUX_PROC")
+endif()
+
+set(
+ libyara_sources
+ libyara/ahocorasick.c
+ libyara/arena.c
+ libyara/atoms.c
+ libyara/base64.c
+ libyara/bitmask.c
+ libyara/compiler.c
+ libyara/endian.c
+ libyara/exec.c
+ libyara/exefiles.c
+ libyara/filemap.c
+ libyara/grammar.c
+ libyara/hash.c
+ libyara/hex_grammar.c
+ libyara/hex_lexer.c
+ libyara/lexer.c
+ libyara/libyara.c
+ libyara/mem.c
+ libyara/modules.c
+ libyara/modules/console/console.c
+ libyara/modules/hash/hash.c
+ libyara/modules/math/math.c
+ libyara/modules/macho/macho.c
+ libyara/modules/pe/pe.c
+ libyara/modules/pe/pe_utils.c
+ libyara/modules/pe/authenticode-parser/authenticode.c
+ libyara/modules/pe/authenticode-parser/certificate.c
+ libyara/modules/pe/authenticode-parser/helper.c
+ libyara/modules/pe/authenticode-parser/countersignature.c
+ libyara/modules/pe/authenticode-parser/structs.c
+ libyara/modules/tests/tests.c
+ libyara/modules/time/time.c
+ libyara/modules/string/string.c
+ libyara/notebook.c
+ libyara/object.c
+ libyara/parser.c
+ libyara/proc.c
+ ${PROC_PLATFORM_SOURCE}
+ libyara/re.c
+ libyara/re_grammar.c
+ libyara/re_lexer.c
+ libyara/rules.c
+ libyara/scan.c
+ libyara/scanner.c
+ libyara/sizedstr.c
+ libyara/stack.c
+ libyara/stopwatch.c
+ libyara/stream.c
+ libyara/strutils.c
+ libyara/threading.c
+
+ # Module elf request new library tlshc(https://github.com/avast/tlshc), the related upstream PR: https://github.com/VirusTotal/yara/pull/1624.
+ # libyara/modules/elf/elf.c
+ # libyara/tlshc/tlsh.c
+ # libyara/tlshc/tlsh_impl.c
+ # libyara/tlshc/tlsh_util.c
+)
+
+set(
+ yara_sources
+ cli/args.c
+ cli/common.c
+ cli/threading.c
+ cli/yara.c
+)
+set( yarac_sources
+ cli/args.c
+ cli/common.c
+ cli/yarac.c
+)
+
+find_package(Threads REQUIRED)
+
+set(
+ libyara_dependencies
+ OpenSSL::SSL
+ OpenSSL::Crypto
+ Threads::Threads
+)
+
+if(CMAKE_SYSTEM_NAME MATCHES "Windows")
+list(APPEND libyara_dependencies Crypt32.lib Ws2_32.lib)
+endif()
+if(HAVE_LIBM)
+ list(APPEND libyara_dependencies m)
+endif()
+
+set(
+ libyara_definitions
+ -DHAVE_LIBCRYPTO
+ -D${PROC_PLATFORM_INTERFACE}
+ -DHASH_MODULE
+)
+
+if(CUCKOO_MODULE)
+ list(APPEND libyara_definitions -DCUCKOO_MODULE)
+ list(APPEND libyara_sources libyara/modules/cuckoo/cuckoo.c)
+ find_package(jansson CONFIG REQUIRED)
+ list(APPEND libyara_dependencies jansson::jansson)
+endif()
+
+if(DOTNET_MODULE)
+ list(APPEND libyara_definitions -DDOTNET_MODULE)
+ list(APPEND libyara_sources libyara/modules/dotnet/dotnet.c libyara/simple_str.c)
+endif()
+
+add_library(libyara ${libyara_sources})
+target_link_libraries(libyara PRIVATE ${libyara_dependencies})
+target_compile_definitions(libyara PRIVATE ${libyara_definitions})
+target_include_directories(libyara INTERFACE $<INSTALL_INTERFACE:include>)
+
+add_executable(yara ${yara_sources})
+add_executable(yarac ${yarac_sources})
+
+target_link_libraries(yarac PRIVATE libyara ${libyara_dependencies})
+target_link_libraries(yara PRIVATE libyara ${libyara_dependencies})
+
+install(
+ TARGETS libyara EXPORT unofficial-libyaraTargets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+install(EXPORT unofficial-libyaraTargets
+ NAMESPACE unofficial::libyara::
+ DESTINATION share/unofficial-libyara
+)
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake.in"
+[[include(CMakeFindDependencyMacro)
+find_dependency(OpenSSL)
+find_dependency(Threads)
+if(@CUCKOO_MODULE@)
+ find_dependency(jansson CONFIG)
+endif()
+include("${CMAKE_CURRENT_LIST_DIR}/unofficial-libyaraTargets.cmake")
+]])
+configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake DESTINATION share/unofficial-libyara)
+
+if(NOT DISABLE_INSTALL_TOOLS)
+ install (
+ TARGETS yarac yara
+ RUNTIME DESTINATION tools/yara
+ )
+endif()
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(DIRECTORY libyara/include/ DESTINATION include)
+endif()