Skip to content

Commit

Permalink
Add CMake installation rules
Browse files Browse the repository at this point in the history
Co-authored-by: aixxe <[email protected]>
  • Loading branch information
2 people authored and cursey committed Feb 23, 2025
1 parent 9634ebd commit b51ffa9
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 2 deletions.
32 changes: 31 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ if(SAFETYHOOK_BUILD_TEST) # build-test
v2.0.1
GIT_SHALLOW
ON
EXCLUDE_FROM_ALL
ON
)
FetchContent_MakeAvailable(ut)

Expand All @@ -58,6 +60,8 @@ if(SAFETYHOOK_BUILD_TEST) # build-test
v6.69
GIT_SHALLOW
ON
EXCLUDE_FROM_ALL
ON
)
FetchContent_MakeAvailable(xbyak)

Expand All @@ -75,6 +79,8 @@ if(SAFETYHOOK_FETCH_ZYDIS) # fetch-zydis
v4.1.0
GIT_SHALLOW
ON
EXCLUDE_FROM_ALL
ON
)
FetchContent_MakeAvailable(Zydis)

Expand Down Expand Up @@ -159,7 +165,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "GNU") #
endif()

target_include_directories(safetyhook PUBLIC
"include/"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)

target_link_libraries(safetyhook PUBLIC
Expand All @@ -171,6 +178,29 @@ if(SAFETYHOOK_USE_CXXMODULES)
target_compile_definitions(safetyhook INTERFACE SAFETYHOOK_USE_CXXMODULES)
endif()

include(GNUInstallDirs)

install(
TARGETS safetyhook
EXPORT safetyhook-export
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

install(
EXPORT safetyhook-export
FILE safetyhook-config.cmake
NAMESPACE safetyhook::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/safetyhook
)

# Target: docs
if(SAFETYHOOK_BUILD_DOCS) # build-docs
set(CMKR_TARGET docs)
Expand Down
31 changes: 30 additions & 1 deletion cmake.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@ condition = "build-test"
git = "https://github.com/boost-ext/ut.git"
tag = "v2.0.1"
shallow = true
EXCLUDE_FROM_ALL = true

[fetch-content.xbyak]
condition = "build-test"
git = "https://github.com/herumi/xbyak.git"
tag = "v6.69"
shallow = true
EXCLUDE_FROM_ALL = true

[fetch-content.Zydis]
condition = "fetch-zydis"
Expand All @@ -46,6 +48,7 @@ option(ZYDIS_BUILD_DOXYGEN "" OFF)
cmake-after = """
add_library(Zydis::Zydis ALIAS Zydis)
"""
EXCLUDE_FROM_ALL = true

[find-package.Doxygen]
condition = "build-docs"
Expand All @@ -63,7 +66,10 @@ required = true
[target.safetyhook]
type = "library"
sources = ["src/*.cpp"]
include-directories = ["include/"]
include-directories = [
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>",
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
]
compile-features = ["cxx_std_23"]
alias = "safetyhook::safetyhook"
link-libraries = ["Zydis::Zydis"]
Expand All @@ -76,6 +82,29 @@ cmake-after = """
if(SAFETYHOOK_USE_CXXMODULES)
target_compile_definitions(safetyhook INTERFACE SAFETYHOOK_USE_CXXMODULES)
endif()
include(GNUInstallDirs)
install(
TARGETS safetyhook
EXPORT safetyhook-export
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
install(
EXPORT safetyhook-export
FILE safetyhook-config.cmake
NAMESPACE safetyhook::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/safetyhook
)
"""

[target.docs]
Expand Down

0 comments on commit b51ffa9

Please sign in to comment.