-
Notifications
You must be signed in to change notification settings - Fork 116
Expand file tree
/
Copy pathCMakelists.txt
More file actions
75 lines (65 loc) · 2.11 KB
/
CMakelists.txt
File metadata and controls
75 lines (65 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
cmake_minimum_required(VERSION 3.30)
project(Detours LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(libname lib_detours)
set(DETOURS_SOURCE Detours)
add_library(${libname} STATIC)
target_include_directories(${libname} PRIVATE ${DETOURS_SOURCE})
target_sources(${libname} PRIVATE
${DETOURS_SOURCE}/creatwth.cpp
${DETOURS_SOURCE}/detours.cpp
${DETOURS_SOURCE}/disasm.cpp
${DETOURS_SOURCE}/disolarm.cpp
${DETOURS_SOURCE}/disolarm64.cpp
${DETOURS_SOURCE}/disolia64.cpp
${DETOURS_SOURCE}/disolx64.cpp
${DETOURS_SOURCE}/disolx86.cpp
${DETOURS_SOURCE}/image.cpp
${DETOURS_SOURCE}/modules.cpp
${DETOURS_SOURCE}/uimports.cpp
${DETOURS_SOURCE}/detours.h
${DETOURS_SOURCE}/detver.h
)
# This file is included and not compiled on its own
set_property (
SOURCE ${DETOURS_SOURCE}/uimports.cpp
APPEND PROPERTY HEADER_FILE_ONLY true)
# Install libraries and public headers
install(TARGETS ${libname}
EXPORT ${PROJECT_NAME}Targets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
FILE_SET HEADERS DESTINATION include
)
# Install export file
install(EXPORT ${PROJECT_NAME}Targets
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION lib/cmake/${PROJECT_NAME}
)
# Generate and install CMake config file
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
VERSION 1.0.0
COMPATIBILITY SameMajorVersion
)
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
@ONLY
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION lib/cmake/${PROJECT_NAME}
)
# CPack configuration for packaging
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
set(CPACK_PACKAGE_VERSION "1.0.0")
set(CPACK_PACKAGE_DESCRIPTION "A custom MemoryModulePP implementation")
set(CPACK_PACKAGE_VENDOR "xAI")
set(CPACK_GENERATOR "ZIP;TGZ")
include(CPack)