205 lines
10 KiB
Text
205 lines
10 KiB
Text
--- CMakeLists.txt.orig 2023-10-31 14:13:07 UTC
|
|
+++ CMakeLists.txt
|
|
@@ -7,24 +7,24 @@ set(CMAKE_PROJECT_VERSION ${version})
|
|
|
|
configure_file(src/version.hpp.in ${CMAKE_CURRENT_SOURCE_DIR}/src/version.hpp)
|
|
|
|
-set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum OS X deployment version")
|
|
-if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR
|
|
- CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
|
|
- set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES})
|
|
-endif()
|
|
+#set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12" CACHE STRING "Minimum OS X deployment version")
|
|
+#if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR
|
|
+# CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
|
|
+# set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES})
|
|
+#endif()
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
-set(LIBDDWAF_SHARED_LINKER_FLAGS "-static-libstdc++" CACHE STRING "Shared library extra linker flags")
|
|
+#set(LIBDDWAF_SHARED_LINKER_FLAGS "-static-libstdc++" CACHE STRING "Shared library extra linker flags")
|
|
set(LIBDDWAF_EXE_LINKER_FLAGS "" CACHE STRING "Executable extra linker flags")
|
|
set(LIBDDWAF_PACKAGE_SUFFIX "" CACHE STRING "Suffix for packaging purposes")
|
|
-if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
|
|
- set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_OSX_ARCHITECTURES} CACHE STRING "Alternative processor for packaging purposes")
|
|
-else()
|
|
- set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR} CACHE STRING "Alternative processor for packaging purposes")
|
|
-endif()
|
|
+#if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
|
|
+# set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_OSX_ARCHITECTURES} CACHE STRING "Alternative processor for packaging purposes")
|
|
+#else()
|
|
+# set(LIBDDWAF_PACKAGE_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR} CACHE STRING "Alternative processor for packaging purposes")
|
|
+#endif()
|
|
|
|
option(LIBDDWAF_BUILD_SHARED "Build shared library" ON)
|
|
option(LIBDDWAF_BUILD_STATIC "Build shared library" ON)
|
|
@@ -59,7 +59,7 @@ endif()
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
-add_subdirectory(third_party)
|
|
+#add_subdirectory(third_party)
|
|
|
|
add_library(glibc_compat OBJECT ${libddwaf_SOURCE_DIR}/src/glibc-compat/time64.c)
|
|
set_target_properties(glibc_compat PROPERTIES POSITION_INDEPENDENT_CODE 1)
|
|
@@ -159,7 +159,7 @@ install(FILES ${libddwaf_SOURCE_DIR}/include/ddwaf.h D
|
|
|
|
# System dependencies
|
|
set(LIBDDWAF_INTERFACE_LIBRARIES "")
|
|
-set(LIBDDWAF_PRIVATE_LIBRARIES lib_re2 lib_utf8proc)
|
|
+#set(LIBDDWAF_PRIVATE_LIBRARIES lib_re2 lib_utf8proc)
|
|
|
|
if(NOT MSVC AND LIBDDWAF_TEST_COVERAGE)
|
|
target_compile_options(libddwaf_objects PRIVATE -ggdb --coverage)
|
|
@@ -192,6 +192,28 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
elseif(WIN32)
|
|
list(APPEND LIBDDWAF_INTERFACE_LIBRARIES ws2_32)
|
|
endif()
|
|
+find_library(LIBAC ac)
|
|
+if (LIBAC)
|
|
+ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES ac)
|
|
+endif()
|
|
+find_library(LIBFMT fmt)
|
|
+if (LIBFMT)
|
|
+ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES fmt)
|
|
+endif()
|
|
+find_library(LIBINJECTION injection)
|
|
+if (LIBINJECTION)
|
|
+ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES injection)
|
|
+endif()
|
|
+add_library(lib_rapidjson INTERFACE IMPORTED GLOBAL)
|
|
+target_include_directories(lib_rapidjson INTERFACE ${PROJECT_SOURCE_DIR}/third_party/rapidjson/include)
|
|
+find_library(LIBRE2 re2)
|
|
+if (LIBRE2)
|
|
+ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES re2)
|
|
+endif()
|
|
+find_library(LIBUTF8PROC utf8proc)
|
|
+if (LIBUTF8PROC)
|
|
+ list(APPEND LIBDDWAF_INTERFACE_LIBRARIES utf8proc)
|
|
+endif()
|
|
|
|
target_link_libraries(libddwaf_objects
|
|
PRIVATE ${LIBDDWAF_PRIVATE_LIBRARIES}
|
|
@@ -216,64 +238,65 @@ if (LIBDDWAF_BUILD_STATIC)
|
|
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
|
|
# Post-processing on the static library
|
|
- if(MSVC)
|
|
- add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E make_directory lib_comb
|
|
- COMMAND ${CMAKE_COMMAND} -E chdir lib_comb lib.exe
|
|
- /OUT:combined${CMAKE_STATIC_LIBRARY_SUFFIX}
|
|
- $<TARGET_FILE:libddwaf_static> $<TARGET_FILE:lib_re2> $<TARGET_FILE:lib_utf8proc>
|
|
- COMMAND ${CMAKE_COMMAND} -E copy lib_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
|
|
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
- else()
|
|
- if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
|
|
- add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
|
|
- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
|
|
- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
|
|
- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
|
|
- COMMAND libtool -static -o ar_comb/combined.a -arch_only ${CMAKE_OSX_ARCHITECTURES} ar_comb/*.o*
|
|
-
|
|
- COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
|
|
- COMMAND rm -rf ar_comb
|
|
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
- else()
|
|
- add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
- COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
|
|
- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
|
|
- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
|
|
- COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
|
|
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_OBJECTS:glibc_compat> ar_comb
|
|
- COMMAND ${CMAKE_AR} -qcs ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} ar_comb/*.o*
|
|
-
|
|
- COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
|
|
- COMMAND rm -rf ar_comb
|
|
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
- endif()
|
|
- if(NOT (CMAKE_BUILD_TYPE MATCHES Debug))
|
|
- if (CMAKE_SYSTEM_NAME STREQUAL Darwin OR CMAKE_SYSTEM_NAME STREQUAL Linux)
|
|
- if (NOT CMAKE_STRIP)
|
|
- find_program(STRIP strip)
|
|
- if (STRIP STREQUAL "STRIP-NOTFOUND")
|
|
- message(FATAL_ERROR "strip not found")
|
|
- endif()
|
|
- else()
|
|
- set(STRIP ${CMAKE_STRIP})
|
|
- endif()
|
|
- add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
- COMMAND ${STRIP} -x -S $<TARGET_FILE:libddwaf_static> -o $<TARGET_FILE:libddwaf_static>.stripped)
|
|
- install(FILES $<TARGET_FILE:libddwaf_static>.stripped DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
- endif()
|
|
- endif()
|
|
- endif()
|
|
+# if(MSVC)
|
|
+# add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
+# COMMAND ${CMAKE_COMMAND} -E make_directory lib_comb
|
|
+# COMMAND ${CMAKE_COMMAND} -E chdir lib_comb lib.exe
|
|
+# /OUT:combined${CMAKE_STATIC_LIBRARY_SUFFIX}
|
|
+# $<TARGET_FILE:libddwaf_static> $<TARGET_FILE:lib_re2> $<TARGET_FILE:lib_utf8proc>
|
|
+# COMMAND ${CMAKE_COMMAND} -E copy lib_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
|
|
+# WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
+# else()
|
|
+# if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
|
|
+# add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
+# COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
|
|
+# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
|
|
+# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
|
|
+# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
|
|
+# COMMAND libtool -static -o ar_comb/combined.a -arch_only ${CMAKE_OSX_ARCHITECTURES} ar_comb/*.o*
|
|
+#
|
|
+# COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
|
|
+# COMMAND rm -rf ar_comb
|
|
+# WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
+# else()
|
|
+# add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
+# COMMAND ${CMAKE_COMMAND} -E make_directory ar_comb
|
|
+# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:libddwaf_static>
|
|
+# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_re2>
|
|
+# COMMAND ${CMAKE_COMMAND} -E chdir ar_comb ${CMAKE_AR} -x $<TARGET_FILE:lib_utf8proc>
|
|
+# COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_OBJECTS:glibc_compat> ar_comb
|
|
+# COMMAND ${CMAKE_AR} -qcs ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} ar_comb/*.o*
|
|
+#
|
|
+# COMMAND ${CMAKE_COMMAND} -E copy ar_comb/combined${CMAKE_STATIC_LIBRARY_SUFFIX} $<TARGET_FILE:libddwaf_static>
|
|
+# COMMAND rm -rf ar_comb
|
|
+# WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
+# endif()
|
|
+# if(NOT (CMAKE_BUILD_TYPE MATCHES Debug))
|
|
+# if (CMAKE_SYSTEM_NAME STREQUAL Darwin OR CMAKE_SYSTEM_NAME STREQUAL Linux)
|
|
+# if (NOT CMAKE_STRIP)
|
|
+# find_program(STRIP strip)
|
|
+# if (STRIP STREQUAL "STRIP-NOTFOUND")
|
|
+# message(FATAL_ERROR "strip not found")
|
|
+# endif()
|
|
+# else()
|
|
+# set(STRIP ${CMAKE_STRIP})
|
|
+# endif()
|
|
+# add_custom_command(TARGET libddwaf_static POST_BUILD
|
|
+# COMMAND ${STRIP} -x -S $<TARGET_FILE:libddwaf_static> -o $<TARGET_FILE:libddwaf_static>.stripped)
|
|
+# install(FILES $<TARGET_FILE:libddwaf_static>.stripped DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
+# endif()
|
|
+# endif()
|
|
+# endif()
|
|
endif()
|
|
|
|
# Shared library
|
|
if (LIBDDWAF_BUILD_SHARED)
|
|
- execute_process(COMMAND git rev-parse HEAD
|
|
- WORKING_DIRECTORY ${libddwaf_SOURCE_DIR}
|
|
- OUTPUT_VARIABLE BUILD_ID
|
|
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
- )
|
|
+# execute_process(COMMAND git rev-parse HEAD
|
|
+# WORKING_DIRECTORY ${libddwaf_SOURCE_DIR}
|
|
+# OUTPUT_VARIABLE BUILD_ID
|
|
+# OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
+# )
|
|
+ set(BUILD_ID "e7d3c209402b8d81d119584cb147f88efe976965")
|
|
message(STATUS "Build id is ${BUILD_ID}")
|
|
string(SUBSTRING "${BUILD_ID}" 0 2 BUILD_ID_PREFIX)
|
|
string(SUBSTRING "${BUILD_ID}" 2 39 BUILD_ID_SUFFIX)
|