From 4a567e9b9b67afc017cc0f7e668e719c5af86e8a Mon Sep 17 00:00:00 2001 From: Uilian Ries Date: Thu, 19 Dec 2019 14:19:10 -0300 Subject: [PATCH 1/3] Add basic CMake support Signed-off-by: Uilian Ries --- CMakeLists.txt | 56 +++++++++++++++++++ librhash/CMakeLists.txt | 115 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 librhash/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..f6baee2b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required(VERSION 3.1) +project(rhash) + +file(READ "${CMAKE_CURRENT_SOURCE_DIR}/version.h" versionfile) +string(REGEX MATCH "#define VERSION \"([0-9]*)\.([0-9]*)\.([0-9]*)\"" _ ${versionfile}) +set(RHASH_VERSION_MAJOR ${CMAKE_MATCH_1}) +set(RHASH_VERSION_MINOR ${CMAKE_MATCH_2}) +set(RHASH_VERSION_PATCH ${CMAKE_MATCH_3}) +set(RHASH_VERSION "${RHASH_VERSION_MAJOR}.${RHASH_VERSION_MINOR}.${RHASH_VERSION_PATCH}") + +option(USE_GETTEXT "Enable gettext (localization) support") + +set(SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/calc_sums.c" + "${CMAKE_CURRENT_SOURCE_DIR}/hash_print.c" + "${CMAKE_CURRENT_SOURCE_DIR}/common_func.c" + "${CMAKE_CURRENT_SOURCE_DIR}/hash_update.c" + "${CMAKE_CURRENT_SOURCE_DIR}/file.c" + "${CMAKE_CURRENT_SOURCE_DIR}/file_mask.c" + "${CMAKE_CURRENT_SOURCE_DIR}/file_set.c" + "${CMAKE_CURRENT_SOURCE_DIR}/find_file.c" + "${CMAKE_CURRENT_SOURCE_DIR}/hash_check.c" + "${CMAKE_CURRENT_SOURCE_DIR}/output.c" + "${CMAKE_CURRENT_SOURCE_DIR}/parse_cmdline.c" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash_main.c" + "${CMAKE_CURRENT_SOURCE_DIR}/win_utils.c") + +set(HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/calc_sums.h" + "${CMAKE_CURRENT_SOURCE_DIR}/hash_print.h" + "${CMAKE_CURRENT_SOURCE_DIR}/common_func.h" + "${CMAKE_CURRENT_SOURCE_DIR}/hash_update.h" + "${CMAKE_CURRENT_SOURCE_DIR}/file.h" + "${CMAKE_CURRENT_SOURCE_DIR}/file_mask.h" + "${CMAKE_CURRENT_SOURCE_DIR}/file_set.h" + "${CMAKE_CURRENT_SOURCE_DIR}/find_file.h" + "${CMAKE_CURRENT_SOURCE_DIR}/hash_check.h" + "${CMAKE_CURRENT_SOURCE_DIR}/output.h" + "${CMAKE_CURRENT_SOURCE_DIR}/parse_cmdline.h" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash_main.h" + "${CMAKE_CURRENT_SOURCE_DIR}/win_utils.h" + "${CMAKE_CURRENT_SOURCE_DIR}/platform.h" + "${CMAKE_CURRENT_SOURCE_DIR}/version.h") + +add_subdirectory("librhash") + +add_executable(${CMAKE_PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES}) +target_link_libraries(${CMAKE_PROJECT_NAME} librhash) + +if (USE_GETTEXT) + find_package(Intl REQUIRED) + target_link_libraries(${CMAKE_PROJECT_NAME} ${Intl_LIBRARIES}) + target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${Intl_INCLUDE_DIRS}) + target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE USE_GETTEXT) +endif() + +install(TARGETS ${CMAKE_PROJECT_NAME} + RUNTIME DESTINATION bin) diff --git a/librhash/CMakeLists.txt b/librhash/CMakeLists.txt new file mode 100644 index 00000000..30480b4d --- /dev/null +++ b/librhash/CMakeLists.txt @@ -0,0 +1,115 @@ +cmake_minimum_required(VERSION 3.1) +project(librhash LANGUAGES C) + +include(GNUInstallDirs) + +if(MSVC OR MSVC90 OR MSVC10) + set(MSVC ON) + if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + endif() +endif() + +option(USE_OPENSSL "Enable OpenSSL (optimized hash functions) support") +option(OPENSSL_RUNTIME "Load OpenSSL at runtime if present") + +set(SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/algorithms.c" + "${CMAKE_CURRENT_SOURCE_DIR}/byte_order.c" + "${CMAKE_CURRENT_SOURCE_DIR}/plug_openssl.c" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash.c" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash_timing.c" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash_torrent.c" + "${CMAKE_CURRENT_SOURCE_DIR}/aich.c" + "${CMAKE_CURRENT_SOURCE_DIR}/crc32.c" + "${CMAKE_CURRENT_SOURCE_DIR}/ed2k.c" + "${CMAKE_CURRENT_SOURCE_DIR}/edonr.c" + "${CMAKE_CURRENT_SOURCE_DIR}/hex.c" + "${CMAKE_CURRENT_SOURCE_DIR}/md4.c" + "${CMAKE_CURRENT_SOURCE_DIR}/md5.c" + "${CMAKE_CURRENT_SOURCE_DIR}/sha1.c" + "${CMAKE_CURRENT_SOURCE_DIR}/sha256.c" + "${CMAKE_CURRENT_SOURCE_DIR}/sha512.c" + "${CMAKE_CURRENT_SOURCE_DIR}/sha3.c" + "${CMAKE_CURRENT_SOURCE_DIR}/ripemd-160.c" + "${CMAKE_CURRENT_SOURCE_DIR}/gost12.c" + "${CMAKE_CURRENT_SOURCE_DIR}/gost94.c" + "${CMAKE_CURRENT_SOURCE_DIR}/has160.c" + "${CMAKE_CURRENT_SOURCE_DIR}/snefru.c" + "${CMAKE_CURRENT_SOURCE_DIR}/tiger.c" + "${CMAKE_CURRENT_SOURCE_DIR}/tiger_sbox.c" + "${CMAKE_CURRENT_SOURCE_DIR}/tth.c" + "${CMAKE_CURRENT_SOURCE_DIR}/torrent.c" + "${CMAKE_CURRENT_SOURCE_DIR}/whirlpool.c" + "${CMAKE_CURRENT_SOURCE_DIR}/whirlpool_sbox.c") + +set(HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/algorithms.h" + "${CMAKE_CURRENT_SOURCE_DIR}/byte_order.h" + "${CMAKE_CURRENT_SOURCE_DIR}/plug_openssl.h" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash.h" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash_timing.h" + "${CMAKE_CURRENT_SOURCE_DIR}/rhash_torrent.h" + "${CMAKE_CURRENT_SOURCE_DIR}/aich.h" + "${CMAKE_CURRENT_SOURCE_DIR}/crc32.h" + "${CMAKE_CURRENT_SOURCE_DIR}/ed2k.h" + "${CMAKE_CURRENT_SOURCE_DIR}/edonr.h" + "${CMAKE_CURRENT_SOURCE_DIR}/hex.h" + "${CMAKE_CURRENT_SOURCE_DIR}/md4.h" + "${CMAKE_CURRENT_SOURCE_DIR}/md5.h" + "${CMAKE_CURRENT_SOURCE_DIR}/sha1.h" + "${CMAKE_CURRENT_SOURCE_DIR}/sha256.h" + "${CMAKE_CURRENT_SOURCE_DIR}/sha512.h" + "${CMAKE_CURRENT_SOURCE_DIR}/sha3.h" + "${CMAKE_CURRENT_SOURCE_DIR}/ripemd-160.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gost12.h" + "${CMAKE_CURRENT_SOURCE_DIR}/gost94.h" + "${CMAKE_CURRENT_SOURCE_DIR}/has160.h" + "${CMAKE_CURRENT_SOURCE_DIR}/snefru.h" + "${CMAKE_CURRENT_SOURCE_DIR}/tiger.h" + "${CMAKE_CURRENT_SOURCE_DIR}/tth.h" + "${CMAKE_CURRENT_SOURCE_DIR}/torrent.h" + "${CMAKE_CURRENT_SOURCE_DIR}/ustd.h" + "${CMAKE_CURRENT_SOURCE_DIR}/util.h" + "${CMAKE_CURRENT_SOURCE_DIR}/whirlpool.h") + +add_library(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES}) +set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${CMAKE_PROJECT_NAME}") + +if(USE_OPENSSL) + find_package(OpenSSL REQUIRED) + target_link_libraries(${PROJECT_NAME} OpenSSL::Crypto) + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_OPENSSL) +endif() + +if(OPENSSL_RUNTIME) + target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_DL_LIBS}) + target_compile_definitions(${PROJECT_NAME} PRIVATE OPENSSL_RUNTIME) +endif() + +if(MSVC) + target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_DEPRECATE) +endif() + +set_target_properties(${PROJECT_NAME} PROPERTIES + COMPILE_DEFINITIONS IN_RHASH + DEFINE_SYMBOL RHASH_EXPORTS + PREFIX "" + IMPORT_PREFIX "" + VERSION ${RHASH_VERSION} + SOVERSION ${RHASH_VERSION_MAJOR}) + +export(TARGETS ${PROJECT_NAME} + NAMESPACE ${CMAKE_PROJECT_NAME}:: + FILE "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake") + +install(TARGETS ${PROJECT_NAME} + EXPORT ${CMAKE_PROJECT_NAME}Config + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/rhash.h" "${CMAKE_CURRENT_SOURCE_DIR}/rhash_torrent.h" + DESTINATION include) + +install(EXPORT ${CMAKE_PROJECT_NAME}Config + DESTINATION "${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME}/cmake" + NAMESPACE ${CMAKE_PROJECT_NAME}::) From 2dafe697a06ea158231e23381f454950c9eecc93 Mon Sep 17 00:00:00 2001 From: Uilian Ries Date: Thu, 19 Dec 2019 14:25:33 -0300 Subject: [PATCH 2/3] Update install description with CMake] Signed-off-by: Uilian Ries --- INSTALL.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index ce6d4d9f..7a05d6e6 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -52,3 +52,52 @@ Example of installing RHash with shared and static LibRHash library: ./configure --enable-lib-static make install install-lib-so-link ``` + + +Optional Installation (CMake) +============================= + +Build Prerequisites +------------------- + - GCC or Intel Compiler for Linux / macOS / Unix. + - MinGW or MS VC++ for Windows. + - CMake 3.1 or later + - (optionally) gettext library for internationalization + - (optionally) OpenSSL for optimized algorithms + + Build and install +----------------- +To compile and install the program use command +```sh +cmake . -DCMAKE_BUILD_TYPE=Release && cmake --build . && cmake --build . --target install +``` + +Enabling features +----------------- +RHash can use optimized algorithms of MD5, SHA1, SHA2 from the OpenSSL library. +To link OpenSSL at run-time (preffered way), configure RHash as +```sh +cmake . -DOPENSSL_RUNTIME=ON +``` +To link it at load-time, use options +```sh +cmake . -DUSE_OPENSSL=ON +``` + +Internationalization support can be compiled and installed by commands +```sh +cmake . -DUSE_GETTEXT=ON +make install install-gmo +``` + +Building an OS native package +----------------------------- +When building a package for an OS Repository, one should correctly specify system directories, e.g.: +```sh +cmake . -DCMAKE_INSTALL_PREFIX=/usr +``` + +Example of installing RHash with shared LibRHash library: +```sh +cmake . -DBUILD_SHARED_LIBS=ON +``` From e601748b1c166791429944e2f4233ba6ba62988f Mon Sep 17 00:00:00 2001 From: Uilian Ries Date: Fri, 1 Sep 2023 11:11:21 +0200 Subject: [PATCH 3/3] simplify cmake file Signed-off-by: Uilian Ries --- CMakeLists.txt | 60 +++++++++---------- librhash/CMakeLists.txt | 127 +++++++++++++++++++--------------------- 2 files changed, 91 insertions(+), 96 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6baee2b..ab401c6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.1) project(rhash) -file(READ "${CMAKE_CURRENT_SOURCE_DIR}/version.h" versionfile) +file(READ "version.h" versionfile) string(REGEX MATCH "#define VERSION \"([0-9]*)\.([0-9]*)\.([0-9]*)\"" _ ${versionfile}) set(RHASH_VERSION_MAJOR ${CMAKE_MATCH_1}) set(RHASH_VERSION_MINOR ${CMAKE_MATCH_2}) @@ -10,35 +10,35 @@ set(RHASH_VERSION "${RHASH_VERSION_MAJOR}.${RHASH_VERSION_MINOR}.${RHASH_VERSION option(USE_GETTEXT "Enable gettext (localization) support") -set(SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/calc_sums.c" - "${CMAKE_CURRENT_SOURCE_DIR}/hash_print.c" - "${CMAKE_CURRENT_SOURCE_DIR}/common_func.c" - "${CMAKE_CURRENT_SOURCE_DIR}/hash_update.c" - "${CMAKE_CURRENT_SOURCE_DIR}/file.c" - "${CMAKE_CURRENT_SOURCE_DIR}/file_mask.c" - "${CMAKE_CURRENT_SOURCE_DIR}/file_set.c" - "${CMAKE_CURRENT_SOURCE_DIR}/find_file.c" - "${CMAKE_CURRENT_SOURCE_DIR}/hash_check.c" - "${CMAKE_CURRENT_SOURCE_DIR}/output.c" - "${CMAKE_CURRENT_SOURCE_DIR}/parse_cmdline.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash_main.c" - "${CMAKE_CURRENT_SOURCE_DIR}/win_utils.c") - -set(HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/calc_sums.h" - "${CMAKE_CURRENT_SOURCE_DIR}/hash_print.h" - "${CMAKE_CURRENT_SOURCE_DIR}/common_func.h" - "${CMAKE_CURRENT_SOURCE_DIR}/hash_update.h" - "${CMAKE_CURRENT_SOURCE_DIR}/file.h" - "${CMAKE_CURRENT_SOURCE_DIR}/file_mask.h" - "${CMAKE_CURRENT_SOURCE_DIR}/file_set.h" - "${CMAKE_CURRENT_SOURCE_DIR}/find_file.h" - "${CMAKE_CURRENT_SOURCE_DIR}/hash_check.h" - "${CMAKE_CURRENT_SOURCE_DIR}/output.h" - "${CMAKE_CURRENT_SOURCE_DIR}/parse_cmdline.h" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash_main.h" - "${CMAKE_CURRENT_SOURCE_DIR}/win_utils.h" - "${CMAKE_CURRENT_SOURCE_DIR}/platform.h" - "${CMAKE_CURRENT_SOURCE_DIR}/version.h") +set(SOURCE_FILES "calc_sums.c" + "hash_print.c" + "common_func.c" + "hash_update.c" + "file.c" + "file_mask.c" + "file_set.c" + "find_file.c" + "hash_check.c" + "output.c" + "parse_cmdline.c" + "rhash_main.c" + "win_utils.c") + +set(HEADER_FILES "calc_sums.h" + "hash_print.h" + "common_func.h" + "hash_update.h" + "file.h" + "file_mask.h" + "file_set.h" + "find_file.h" + "hash_check.h" + "output.h" + "parse_cmdline.h" + "rhash_main.h" + "win_utils.h" + "platform.h" + "version.h") add_subdirectory("librhash") diff --git a/librhash/CMakeLists.txt b/librhash/CMakeLists.txt index 30480b4d..ecc3ab9e 100644 --- a/librhash/CMakeLists.txt +++ b/librhash/CMakeLists.txt @@ -3,73 +3,68 @@ project(librhash LANGUAGES C) include(GNUInstallDirs) -if(MSVC OR MSVC90 OR MSVC10) - set(MSVC ON) - if(BUILD_SHARED_LIBS) - set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - endif() -endif() +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON CACHE BOOL "Export all symbols when building shared library on Windows") option(USE_OPENSSL "Enable OpenSSL (optimized hash functions) support") option(OPENSSL_RUNTIME "Load OpenSSL at runtime if present") -set(SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/algorithms.c" - "${CMAKE_CURRENT_SOURCE_DIR}/byte_order.c" - "${CMAKE_CURRENT_SOURCE_DIR}/plug_openssl.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash_timing.c" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash_torrent.c" - "${CMAKE_CURRENT_SOURCE_DIR}/aich.c" - "${CMAKE_CURRENT_SOURCE_DIR}/crc32.c" - "${CMAKE_CURRENT_SOURCE_DIR}/ed2k.c" - "${CMAKE_CURRENT_SOURCE_DIR}/edonr.c" - "${CMAKE_CURRENT_SOURCE_DIR}/hex.c" - "${CMAKE_CURRENT_SOURCE_DIR}/md4.c" - "${CMAKE_CURRENT_SOURCE_DIR}/md5.c" - "${CMAKE_CURRENT_SOURCE_DIR}/sha1.c" - "${CMAKE_CURRENT_SOURCE_DIR}/sha256.c" - "${CMAKE_CURRENT_SOURCE_DIR}/sha512.c" - "${CMAKE_CURRENT_SOURCE_DIR}/sha3.c" - "${CMAKE_CURRENT_SOURCE_DIR}/ripemd-160.c" - "${CMAKE_CURRENT_SOURCE_DIR}/gost12.c" - "${CMAKE_CURRENT_SOURCE_DIR}/gost94.c" - "${CMAKE_CURRENT_SOURCE_DIR}/has160.c" - "${CMAKE_CURRENT_SOURCE_DIR}/snefru.c" - "${CMAKE_CURRENT_SOURCE_DIR}/tiger.c" - "${CMAKE_CURRENT_SOURCE_DIR}/tiger_sbox.c" - "${CMAKE_CURRENT_SOURCE_DIR}/tth.c" - "${CMAKE_CURRENT_SOURCE_DIR}/torrent.c" - "${CMAKE_CURRENT_SOURCE_DIR}/whirlpool.c" - "${CMAKE_CURRENT_SOURCE_DIR}/whirlpool_sbox.c") +set(SOURCE_FILES "algorithms.c" + "byte_order.c" + "plug_openssl.c" + "rhash.c" + "rhash_timing.c" + "rhash_torrent.c" + "aich.c" + "crc32.c" + "ed2k.c" + "edonr.c" + "hex.c" + "md4.c" + "md5.c" + "sha1.c" + "sha256.c" + "sha512.c" + "sha3.c" + "ripemd-160.c" + "gost12.c" + "gost94.c" + "has160.c" + "snefru.c" + "tiger.c" + "tiger_sbox.c" + "tth.c" + "torrent.c" + "whirlpool.c" + "whirlpool_sbox.c") -set(HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/algorithms.h" - "${CMAKE_CURRENT_SOURCE_DIR}/byte_order.h" - "${CMAKE_CURRENT_SOURCE_DIR}/plug_openssl.h" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash.h" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash_timing.h" - "${CMAKE_CURRENT_SOURCE_DIR}/rhash_torrent.h" - "${CMAKE_CURRENT_SOURCE_DIR}/aich.h" - "${CMAKE_CURRENT_SOURCE_DIR}/crc32.h" - "${CMAKE_CURRENT_SOURCE_DIR}/ed2k.h" - "${CMAKE_CURRENT_SOURCE_DIR}/edonr.h" - "${CMAKE_CURRENT_SOURCE_DIR}/hex.h" - "${CMAKE_CURRENT_SOURCE_DIR}/md4.h" - "${CMAKE_CURRENT_SOURCE_DIR}/md5.h" - "${CMAKE_CURRENT_SOURCE_DIR}/sha1.h" - "${CMAKE_CURRENT_SOURCE_DIR}/sha256.h" - "${CMAKE_CURRENT_SOURCE_DIR}/sha512.h" - "${CMAKE_CURRENT_SOURCE_DIR}/sha3.h" - "${CMAKE_CURRENT_SOURCE_DIR}/ripemd-160.h" - "${CMAKE_CURRENT_SOURCE_DIR}/gost12.h" - "${CMAKE_CURRENT_SOURCE_DIR}/gost94.h" - "${CMAKE_CURRENT_SOURCE_DIR}/has160.h" - "${CMAKE_CURRENT_SOURCE_DIR}/snefru.h" - "${CMAKE_CURRENT_SOURCE_DIR}/tiger.h" - "${CMAKE_CURRENT_SOURCE_DIR}/tth.h" - "${CMAKE_CURRENT_SOURCE_DIR}/torrent.h" - "${CMAKE_CURRENT_SOURCE_DIR}/ustd.h" - "${CMAKE_CURRENT_SOURCE_DIR}/util.h" - "${CMAKE_CURRENT_SOURCE_DIR}/whirlpool.h") +set(HEADER_FILES "algorithms.h" + "byte_order.h" + "plug_openssl.h" + "rhash.h" + "rhash_timing.h" + "rhash_torrent.h" + "aich.h" + "crc32.h" + "ed2k.h" + "edonr.h" + "hex.h" + "md4.h" + "md5.h" + "sha1.h" + "sha256.h" + "sha512.h" + "sha3.h" + "ripemd-160.h" + "gost12.h" + "gost94.h" + "has160.h" + "snefru.h" + "tiger.h" + "tth.h" + "torrent.h" + "ustd.h" + "util.h" + "whirlpool.h") add_library(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES}) set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${CMAKE_PROJECT_NAME}") @@ -103,11 +98,11 @@ export(TARGETS ${PROJECT_NAME} install(TARGETS ${PROJECT_NAME} EXPORT ${CMAKE_PROJECT_NAME}Config - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/rhash.h" "${CMAKE_CURRENT_SOURCE_DIR}/rhash_torrent.h" +install(FILES "rhash.h" "rhash_torrent.h" DESTINATION include) install(EXPORT ${CMAKE_PROJECT_NAME}Config