Option to generate install target (#1700)
Co-authored-by: meme <meme@users.noreply.github.com>
This commit is contained in:
parent
2f38802e0e
commit
aff05e613a
|
@ -29,6 +29,7 @@ option(CAPSTONE_BUILD_CSTOOL "Build cstool" ON)
|
||||||
option(CAPSTONE_USE_DEFAULT_ALLOC "Use default memory allocation functions" ON)
|
option(CAPSTONE_USE_DEFAULT_ALLOC "Use default memory allocation functions" ON)
|
||||||
option(CAPSTONE_ARCHITECTURE_DEFAULT "Whether architectures are enabled by default" ON)
|
option(CAPSTONE_ARCHITECTURE_DEFAULT "Whether architectures are enabled by default" ON)
|
||||||
option(CAPSTONE_DEBUG "Whether to enable extra debug assertions" OFF)
|
option(CAPSTONE_DEBUG "Whether to enable extra debug assertions" OFF)
|
||||||
|
option(CAPSTONE_INSTALL "Generate install target" OFF)
|
||||||
|
|
||||||
set(SUPPORTED_ARCHITECTURES ARM ARM64 M68K MIPS PPC SPARC SYSZ XCORE X86 TMS320C64X M680X EVM MOS65XX WASM BPF RISCV)
|
set(SUPPORTED_ARCHITECTURES ARM ARM64 M68K MIPS PPC SPARC SYSZ XCORE X86 TMS320C64X M680X EVM MOS65XX WASM BPF RISCV)
|
||||||
set(SUPPORTED_ARCHITECTURE_LABELS ARM ARM64 M68K MIPS PowerPC Sparc SystemZ XCore x86 TMS320C64x M680x EVM MOS65XX WASM BPF RISCV)
|
set(SUPPORTED_ARCHITECTURE_LABELS ARM ARM64 M68K MIPS PowerPC Sparc SystemZ XCore x86 TMS320C64x M680x EVM MOS65XX WASM BPF RISCV)
|
||||||
|
@ -655,7 +656,9 @@ source_group("Include\\RISCV" FILES ${HEADERS_RISCV})
|
||||||
include("GNUInstallDirs")
|
include("GNUInstallDirs")
|
||||||
|
|
||||||
## installation
|
## installation
|
||||||
|
if (CAPSTONE_INSTALL)
|
||||||
install(FILES ${HEADERS_COMMON} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/capstone)
|
install(FILES ${HEADERS_COMMON} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/capstone)
|
||||||
|
endif ()
|
||||||
configure_file(capstone.pc.in ${CMAKE_BINARY_DIR}/capstone.pc @ONLY)
|
configure_file(capstone.pc.in ${CMAKE_BINARY_DIR}/capstone.pc @ONLY)
|
||||||
|
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
|
@ -670,6 +673,8 @@ write_basic_package_version_file(
|
||||||
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
|
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
|
||||||
COMPATIBILITY SameMajorVersion
|
COMPATIBILITY SameMajorVersion
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (CAPSTONE_INSTALL)
|
||||||
install(FILES
|
install(FILES
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/capstone-config.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/capstone-config.cmake"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/capstone-config-version.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/capstone-config-version.cmake"
|
||||||
|
@ -697,12 +702,15 @@ endif ()
|
||||||
install(EXPORT capstone-targets
|
install(EXPORT capstone-targets
|
||||||
NAMESPACE capstone::
|
NAMESPACE capstone::
|
||||||
DESTINATION ${CAPSTONE_CMAKE_CONFIG_INSTALL_DIR})
|
DESTINATION ${CAPSTONE_CMAKE_CONFIG_INSTALL_DIR})
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (CAPSTONE_BUILD_SHARED AND CAPSTONE_BUILD_CSTOOL)
|
if (CAPSTONE_BUILD_SHARED AND CAPSTONE_BUILD_CSTOOL)
|
||||||
FILE(GLOB CSTOOL_SRC cstool/*.c)
|
FILE(GLOB CSTOOL_SRC cstool/*.c)
|
||||||
add_executable(cstool ${CSTOOL_SRC})
|
add_executable(cstool ${CSTOOL_SRC})
|
||||||
target_link_libraries(cstool ${default-target})
|
target_link_libraries(cstool ${default-target})
|
||||||
|
|
||||||
|
if (CAPSTONE_INSTALL)
|
||||||
install(TARGETS cstool DESTINATION ${CMAKE_INSTALL_BINDIR})
|
install(TARGETS cstool DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/capstone.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
install(FILES ${CMAKE_BINARY_DIR}/capstone.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
endif ()
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
Loading…
Reference in New Issue