add basic discord support
This commit is contained in:
51
DPP/cmake/ARM64ToolChain.cmake
Normal file
51
DPP/cmake/ARM64ToolChain.cmake
Normal file
@@ -0,0 +1,51 @@
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
# Possibly needed tweak
|
||||
#SET(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
|
||||
SET(CMAKE_C_COMPILER ${COMPILER_ROOT}/aarch64-linux-gnu-gcc-8)
|
||||
SET(CMAKE_CXX_COMPILER ${COMPILER_ROOT}/aarch64-linux-gnu-g++-8)
|
||||
|
||||
# Below call is necessary to avoid non-RT problem.
|
||||
SET(CMAKE_LIBRARY_ARCHITECTURE aarch64-linux-gnu)
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE aarch64)
|
||||
SET(CPACK_RPM_PACKAGE_ARCHITECTURE aarch64)
|
||||
|
||||
SET(RASPBERRY_ROOT_PATH ${DPP_ROOT_PATH}/arm_raspberry)
|
||||
SET(RASPBERRY_KINETIC_PATH ${RASPBERRY_ROOT_PATH}/opt/ros/kinetic)
|
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH ${RASPBERRY_ROOT_PATH} ${CATKIN_DEVEL_PREFIX})
|
||||
|
||||
#If you have installed cross compiler to somewhere else, please specify that path.
|
||||
SET(COMPILER_ROOT /usr/bin)
|
||||
|
||||
#Have to set this one to BOTH, to allow CMake to find rospack
|
||||
#This set of variables controls whether the CMAKE_FIND_ROOT_PATH and CMAKE_SYSROOT are used for find_xxx() operations.
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
INCLUDE_DIRECTORIES(
|
||||
/usr/include/aarch64-linux-gnu)
|
||||
|
||||
SET(ZLIB_LIBRARY /lib/aarch64-linux-gnu/libz.so.1.2.11)
|
||||
SET(OPENSSL_CRYPTO_LIBRARY /usr/lib/aarch64-linux-gnu/libcrypto.so)
|
||||
SET(OPENSSL_SSL_LIBRARY /usr/lib/aarch64-linux-gnu/libssl.so)
|
||||
|
||||
SET(CMAKE_PREFIX_PATH ${RASPBERRY_KINETIC_PATH} ${RASPBERRY_ROOT_PATH}/usr)
|
||||
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -Wno-psabi" CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -Wno-psabi" CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -ldl" CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -ldl" CACHE INTERNAL "" FORCE)
|
||||
|
||||
SET(LD_LIBRARY_PATH ${RASPBERRY_KINETIC_PATH}/lib)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND printf "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe\ndeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal main multiverse restricted universe\ndeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal-updates main multiverse restricted universe\ndeb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe\ndeb [arch=amd64] http://security.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe"
|
||||
OUTPUT_FILE TMPFILE)
|
||||
EXECUTE_PROCESS(COMMAND sudo mv TMPFILE /etc/apt/sources.list)
|
||||
EXECUTE_PROCESS(COMMAND sudo dpkg --add-architecture arm64)
|
||||
EXECUTE_PROCESS(COMMAND sudo apt-add-repository -y ppa:canonical-kernel-team/ppa)
|
||||
EXECUTE_PROCESS(COMMAND sudo apt update)
|
||||
EXECUTE_PROCESS(COMMAND sudo apt install -y cmake gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu libc6-dev-arm64-cross zlib1g-dev:arm64 libssl-dev:arm64 libopus-dev:arm64)
|
||||
|
||||
64
DPP/cmake/ARMv6ToolChain.cmake
Normal file
64
DPP/cmake/ARMv6ToolChain.cmake
Normal file
@@ -0,0 +1,64 @@
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
# Possibly needed tweak
|
||||
#SET(CMAKE_SYSTEM_PROCESSOR armhf)
|
||||
|
||||
#If you have installed cross compiler to somewhere else, please specify that path.
|
||||
SET(COMPILER_ROOT /opt/cross-pi-gcc)
|
||||
|
||||
SET(CMAKE_C_COMPILER ${COMPILER_ROOT}/bin/arm-linux-gnueabihf-gcc-8.3.0)
|
||||
SET(CMAKE_CXX_COMPILER ${COMPILER_ROOT}/bin/arm-linux-gnueabihf-g++)
|
||||
|
||||
# Below call is necessary to avoid non-RT problem.
|
||||
SET(CMAKE_LIBRARY_ARCHITECTURE arm-linux-gnueabihf)
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE armhf)
|
||||
SET(CPACK_RPM_PACKAGE_ARCHITECTURE armhf)
|
||||
|
||||
SET(RASPBERRY_ROOT_PATH ${CMAKE_CURRENT_LIST_DIR}/arm_raspberry)
|
||||
SET(RASPBERRY_KINETIC_PATH ${RASPBERRY_ROOT_PATH}/opt/ros/kinetic)
|
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH ${RASPBERRY_ROOT_PATH} ${CATKIN_DEVEL_PREFIX})
|
||||
|
||||
|
||||
#Have to set this one to BOTH, to allow CMake to find rospack
|
||||
#This set of variables controls whether the CMAKE_FIND_ROOT_PATH and CMAKE_SYSROOT are used for find_xxx() operations.
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
SET(CMAKE_PREFIX_PATH ${RASPBERRY_KINETIC_PATH} ${RASPBERRY_ROOT_PATH}/usr)
|
||||
|
||||
UNSET(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES)
|
||||
UNSET(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES)
|
||||
|
||||
SET(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
|
||||
INCLUDE_DIRECTORIES(
|
||||
${COMPILER_ROOT}/arm-linux-gnueabihf/libc/usr/include
|
||||
${COMPILER_ROOT}/arm-linux-gnueabihf/include
|
||||
${COMPILER_ROOT}/arm-linux-gnueabihf/include/c++/8.3.0
|
||||
${COMPILER_ROOT}/arm-linux-gnueabihf/include/c++/8.3.0/arm-linux-gnueabihf
|
||||
${COMPILER_ROOT}/lib/gcc/arm-linux-gnueabihf/8.3.0/include
|
||||
${COMPILER_ROOT}/lib/gcc/arm-linux-gnueabihf/8.3.0/include-fixed
|
||||
${DPP_ROOT_PATH}/rootfs/usr/include/arm-linux-gnueabihf)
|
||||
SET(CMAKE_INCLUDE_DIRECTORIES_BEFORE OFF)
|
||||
|
||||
SET(ZLIB_LIBRARY ${DPP_ROOT_PATH}/rootfs/lib/arm-linux-gnueabihf/libz.so.1.2.11)
|
||||
SET(OPENSSL_CRYPTO_LIBRARY ${DPP_ROOT_PATH}/rootfs/usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1)
|
||||
SET(OPENSSL_SSL_LIBRARY ${DPP_ROOT_PATH}/rootfs/usr/lib/arm-linux-gnueabihf/libssl.so.1.1)
|
||||
|
||||
SET(CMAKE_CXX_COMPILER_WORKS 1)
|
||||
SET(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -nostdinc --sysroot=${RASPBERRY_ROOT_PATH} -Wno-psabi " CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -nostdinc -nostdinc++ --sysroot=${RASPBERRY_ROOT_PATH} -Wno-psabi " CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -ldl" CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -ldl" CACHE INTERNAL "" FORCE)
|
||||
|
||||
SET(LD_LIBRARY_PATH ${RASPBERRY_KINETIC_PATH}/lib)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND wget -P ${DPP_ROOT_PATH}/rootfs -q http://content.dpp.dev/zlib1g_1.2.11.dfsg-1_armhf.deb http://content.dpp.dev/zlib1g-dev_1.2.11.dfsg-1_armhf.deb http://content.dpp.dev/libssl1.1_1.1.1m-1_armhf.deb http://content.dpp.dev/libssl-dev_1.1.1m-1_armhf.deb https://content.dpp.dev/raspi-toolchain.tar.gz)
|
||||
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND tar -xzf ${DPP_ROOT_PATH}/rootfs/raspi-toolchain.tar.gz -C /opt
|
||||
COMMAND sudo dpkg-deb -x ${DPP_ROOT_PATH}/rootfs/zlib1g-dev_1.2.11.dfsg-1_armhf.deb ${DPP_ROOT_PATH}/rootfs
|
||||
COMMAND sudo dpkg-deb -x ${DPP_ROOT_PATH}/rootfs/zlib1g_1.2.11.dfsg-1_armhf.deb ${DPP_ROOT_PATH}/rootfs
|
||||
COMMAND sudo dpkg-deb -x ${DPP_ROOT_PATH}/rootfs/libssl-dev_1.1.1m-1_armhf.deb ${DPP_ROOT_PATH}/rootfs
|
||||
COMMAND sudo dpkg-deb -x ${DPP_ROOT_PATH}/rootfs/libssl1.1_1.1.1m-1_armhf.deb ${DPP_ROOT_PATH}/rootfs)
|
||||
49
DPP/cmake/ARMv7ToolChain.cmake
Normal file
49
DPP/cmake/ARMv7ToolChain.cmake
Normal file
@@ -0,0 +1,49 @@
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
# Possibly needed tweak
|
||||
#SET(CMAKE_SYSTEM_PROCESSOR armhf)
|
||||
|
||||
SET(CMAKE_C_COMPILER ${COMPILER_ROOT}/arm-linux-gnueabihf-gcc-8)
|
||||
SET(CMAKE_CXX_COMPILER ${COMPILER_ROOT}/arm-linux-gnueabihf-g++-8)
|
||||
|
||||
# Below call is necessary to avoid non-RT problem.
|
||||
SET(CMAKE_LIBRARY_ARCHITECTURE arm-linux-gnueabihf)
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE armhf)
|
||||
SET(CPACK_RPM_PACKAGE_ARCHITECTURE armhf)
|
||||
|
||||
SET(RASPBERRY_ROOT_PATH ${DPP_ROOT_PATH}/arm_raspberry)
|
||||
SET(RASPBERRY_KINETIC_PATH ${RASPBERRY_ROOT_PATH}/opt/ros/kinetic)
|
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH ${RASPBERRY_ROOT_PATH} ${CATKIN_DEVEL_PREFIX})
|
||||
|
||||
#If you have installed cross compiler to somewhere else, please specify that path.
|
||||
SET(COMPILER_ROOT /usr/bin)
|
||||
|
||||
#Have to set this one to BOTH, to allow CMake to find rospack
|
||||
#This set of variables controls whether the CMAKE_FIND_ROOT_PATH and CMAKE_SYSROOT are used for find_xxx() operations.
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
#SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
INCLUDE_DIRECTORIES(
|
||||
/usr/include/arm-linux-gnueabihf)
|
||||
|
||||
SET(ZLIB_LIBRARY /lib/arm-linux-gnueabihf/libz.so.1.2.11)
|
||||
SET(OPENSSL_CRYPTO_LIBRARY /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1)
|
||||
SET(OPENSSL_SSL_LIBRARY /usr/lib/arm-linux-gnueabihf/libssl.so.1.1)
|
||||
|
||||
SET(CMAKE_PREFIX_PATH ${RASPBERRY_KINETIC_PATH} ${RASPBERRY_ROOT_PATH}/usr)
|
||||
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -Wno-psabi" CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -Wno-psabi" CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -ldl" CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} --sysroot=${RASPBERRY_ROOT_PATH} -ldl" CACHE INTERNAL "" FORCE)
|
||||
|
||||
SET(LD_LIBRARY_PATH ${RASPBERRY_KINETIC_PATH}/lib)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND printf "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe\ndeb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ focal main multiverse restricted universe\ndeb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ focal-updates main multiverse restricted universe\ndeb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe\ndeb [arch=amd64] http://security.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe"
|
||||
OUTPUT_FILE TMPFILE)
|
||||
EXECUTE_PROCESS(COMMAND sudo mv TMPFILE /etc/apt/sources.list)
|
||||
EXECUTE_PROCESS(COMMAND sudo dpkg --add-architecture armhf)
|
||||
EXECUTE_PROCESS(COMMAND sudo apt update)
|
||||
EXECUTE_PROCESS(COMMAND sudo apt install -y cmake gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf zlib1g-dev:armhf libssl-dev:armhf libopus-dev:armhf)
|
||||
66
DPP/cmake/CPackSetup.cmake
Normal file
66
DPP/cmake/CPackSetup.cmake
Normal file
@@ -0,0 +1,66 @@
|
||||
include(GNUInstallDirs)
|
||||
set(DPP_EXPORT_NAME dpp)
|
||||
set(DPP_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${DPP_EXPORT_NAME})
|
||||
set(DPP_VERSION_FILE ${PROJECT_BINARY_DIR}/${DPP_EXPORT_NAME}-config-version.cmake)
|
||||
|
||||
# The three lines below are only used for windows builds
|
||||
set(DPP_VERSIONED ${DPP_EXPORT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR})
|
||||
set(DPP_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}/${DPP_VERSIONED})
|
||||
set(DPP_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}/${DPP_VERSIONED})
|
||||
|
||||
|
||||
## Pack the binary output
|
||||
if (WIN32)
|
||||
install(TARGETS dpp
|
||||
EXPORT ${DPP_EXPORT_NAME}
|
||||
LIBRARY DESTINATION ${DPP_INSTALL_LIBRARY_DIR}
|
||||
ARCHIVE DESTINATION ${DPP_INSTALL_LIBRARY_DIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
INCLUDES DESTINATION ${DPP_INSTALL_INCLUDE_DIR})
|
||||
install(DIRECTORY "${DPP_ROOT_PATH}/include/" DESTINATION "${DPP_INSTALL_INCLUDE_DIR}")
|
||||
else()
|
||||
install(TARGETS dpp
|
||||
EXPORT ${DPP_EXPORT_NAME}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBRARY_DIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBRARY_DIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
## Allow for a specific version to be chosen in the `find_package` command
|
||||
include(CMakePackageConfigHelpers)
|
||||
write_basic_package_version_file(${DPP_VERSION_FILE}
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
## Include the file which allows `find_package(dpp)` to function.
|
||||
install(FILES "${DPP_ROOT_PATH}/cmake/dpp-config.cmake" "${DPP_VERSION_FILE}" DESTINATION "${DPP_CMAKE_DIR}")
|
||||
|
||||
## Export the targets to allow other projects to easily include this project
|
||||
install(EXPORT "${DPP_EXPORT_NAME}" DESTINATION "${DPP_CMAKE_DIR}" NAMESPACE dpp::)
|
||||
|
||||
# Prepare information for packaging into .zip, .deb, .rpm
|
||||
## Project installation metadata
|
||||
set(CPACK_PACKAGE_NAME libdpp) # Name of generated file
|
||||
set(CPACK_PACKAGE_VENDOR Brainbox.cc) # Maker of the application
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "An incredibly lightweight C++ Discord library")
|
||||
set(CPACK_PACKAGE_DESCRIPTION "An incredibly lightweight C++ Discord library")
|
||||
set(CPACK_PACKAGE_HOMEPAGE_URL "https://dpp.dev/")
|
||||
set(CPACK_FREEBSD_PACKAGE_MAINTAINER "bsd@dpp.dev")
|
||||
set(CPACK_FREEBSD_PACKAGE_ORIGIN "misc/libdpp")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0")
|
||||
set(CPACK_PACKAGE_CONTACT "https://discord.gg/dpp") # D++ Development Discord
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libopus0 (>= 1.3-1)")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "opus >= 1.3.1")
|
||||
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "An incredibly lightweight C++ Discord library")
|
||||
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
|
||||
|
||||
## Select generated based on what operating system
|
||||
if(WIN32)
|
||||
set(CPACK_GENERATOR ZIP)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(CPACK_GENERATOR "DEB;RPM")
|
||||
else()
|
||||
set(CPACK_GENERATOR "TBZ2")
|
||||
endif()
|
||||
75
DPP/cmake/DetectArchitecture.cmake
Normal file
75
DPP/cmake/DetectArchitecture.cmake
Normal file
@@ -0,0 +1,75 @@
|
||||
include(CheckCXXSourceRuns)
|
||||
|
||||
function(check_instruction_set INSTRUCTION_SET_NAME INSTRUCTION_SET_FLAG INSTRUCTION_SET_INTRINSIC)
|
||||
|
||||
set(INSTRUCTION_SET_CODE "
|
||||
#if defined(__arm__) || defined(__aarch64__)
|
||||
#include <arm_neon.h>
|
||||
#else
|
||||
#include <immintrin.h>
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
${INSTRUCTION_SET_INTRINSIC};
|
||||
return 0;
|
||||
}
|
||||
")
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "${INSTRUCTION_SET_FLAG}")
|
||||
CHECK_CXX_SOURCE_RUNS("${INSTRUCTION_SET_CODE}" "${INSTRUCTION_SET_NAME}")
|
||||
if(${INSTRUCTION_SET_NAME})
|
||||
set(AVX_TYPE "${INSTRUCTION_SET_NAME}" PARENT_SCOPE)
|
||||
set(AVX_FLAG "${INSTRUCTION_SET_FLAG}" PARENT_SCOPE)
|
||||
else()
|
||||
return()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
set(INSTRUCTION_SETS
|
||||
"AVX1?/arch:AVX?__m128i value{}#auto result = _mm_extract_epi32(value, 0)"
|
||||
"AVX2?/arch:AVX2?__m256i value{}#auto result = _mm256_add_epi32(__m256i{}, __m256i{})"
|
||||
"AVX512?/arch:AVX512?int32_t result[16]#const _mm512i& value{}#_mm512_store_si512(result, value)"
|
||||
"AVX1024??uint8x16_t mask{ 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F }#vandq_u8(mask, mask)"
|
||||
)
|
||||
else()
|
||||
set(INSTRUCTION_SETS
|
||||
"AVX1?-mavx?__m128i value{}#auto result = _mm_extract_epi32(value, 0)"
|
||||
"AVX2?-mavx2?__m256i value{}#auto result = _mm256_add_epi32(__m256i{}, __m256i{})"
|
||||
"AVX512?-mavx512f?int32_t result[16]#const _mm512i& value{}#_mm512_store_si512(result, value)"
|
||||
"AVX1024??uint8x16_t mask{ 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F }#vandq_u8(mask, mask)"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS_SAVE "${CMAKE_REQUIRED_FLAGS}")
|
||||
|
||||
set(AVX_TYPE "AVX0")
|
||||
set(AVX_TYPE "AVX0" PARENT_SCOPE)
|
||||
set(AVX_FLAGS "" PARENT_SCOPE)
|
||||
|
||||
# This is only supported on x86/x64, it is completely skipped and forced to T_fallback anywhere else
|
||||
if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64") OR (${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm64") OR (${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "armv7l"))
|
||||
|
||||
foreach(INSTRUCTION_SET IN LISTS INSTRUCTION_SETS)
|
||||
string(REPLACE "?" ";" CURRENT_LIST "${INSTRUCTION_SET}")
|
||||
list(GET CURRENT_LIST 0 INSTRUCTION_SET_NAME)
|
||||
list(GET CURRENT_LIST 1 INSTRUCTION_SET_FLAG)
|
||||
string(REPLACE "." ";" INSTRUCTION_SET_FLAG "${INSTRUCTION_SET_FLAG}")
|
||||
list(GET CURRENT_LIST 2 INSTRUCTION_SET_INTRINSIC)
|
||||
string(REPLACE "#" ";" INSTRUCTION_SET_INTRINSIC "${INSTRUCTION_SET_INTRINSIC}")
|
||||
check_instruction_set("${INSTRUCTION_SET_NAME}" "${INSTRUCTION_SET_FLAG}" "${INSTRUCTION_SET_INTRINSIC}")
|
||||
endforeach()
|
||||
|
||||
message(STATUS "Detected ${CMAKE_SYSTEM_PROCESSOR} AVX type: ${AVX_TYPE} (FLAGS: ${AVX_FLAG})")
|
||||
set(AVX_TYPE ${AVX_TYPE})
|
||||
set(AVX_TYPE ${AVX_TYPE} PARENT_SCOPE)
|
||||
set(AVX_FLAG ${AVX_FLAG} PARENT_SCOPE)
|
||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS_SAVE}")
|
||||
else()
|
||||
message(STATUS "AVX not supported by architecture ${CMAKE_SYSTEM_PROCESSOR} ${AVX_TYPE}")
|
||||
set(AVX_TYPE "AVX0")
|
||||
set(AVX_FLAG "" PARENT_SCOPE)
|
||||
set(AVX_TYPE "AVX0" PARENT_SCOPE)
|
||||
endif()
|
||||
247
DPP/cmake/FindFilesystem.cmake
Normal file
247
DPP/cmake/FindFilesystem.cmake
Normal file
@@ -0,0 +1,247 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
|
||||
FindFilesystem
|
||||
##############
|
||||
|
||||
This module supports the C++17 standard library's filesystem utilities. Use the
|
||||
:imp-target:`std::filesystem` imported target to
|
||||
|
||||
Options
|
||||
*******
|
||||
|
||||
The ``COMPONENTS`` argument to this module supports the following values:
|
||||
|
||||
.. find-component:: Experimental
|
||||
:name: fs.Experimental
|
||||
|
||||
Allows the module to find the "experimental" Filesystem TS version of the
|
||||
Filesystem library. This is the library that should be used with the
|
||||
``std::experimental::filesystem`` namespace.
|
||||
|
||||
.. find-component:: Final
|
||||
:name: fs.Final
|
||||
|
||||
Finds the final C++17 standard version of the filesystem library.
|
||||
|
||||
If no components are provided, behaves as if the
|
||||
:find-component:`fs.Final` component was specified.
|
||||
|
||||
If both :find-component:`fs.Experimental` and :find-component:`fs.Final` are
|
||||
provided, first looks for ``Final``, and falls back to ``Experimental`` in case
|
||||
of failure. If ``Final`` is found, :imp-target:`std::filesystem` and all
|
||||
:ref:`variables <fs.variables>` will refer to the ``Final`` version.
|
||||
|
||||
|
||||
Imported Targets
|
||||
****************
|
||||
|
||||
.. imp-target:: std::filesystem
|
||||
|
||||
The ``std::filesystem`` imported target is defined when any requested
|
||||
version of the C++ filesystem library has been found, whether it is
|
||||
*Experimental* or *Final*.
|
||||
|
||||
If no version of the filesystem library is available, this target will not
|
||||
be defined.
|
||||
|
||||
.. note::
|
||||
This target has ``cxx_std_17`` as an ``INTERFACE``
|
||||
:ref:`compile language standard feature <req-lang-standards>`. Linking
|
||||
to this target will automatically enable C++17 if no later standard
|
||||
version is already required on the linking target.
|
||||
|
||||
|
||||
.. _fs.variables:
|
||||
|
||||
Variables
|
||||
*********
|
||||
|
||||
.. variable:: CXX_FILESYSTEM_IS_EXPERIMENTAL
|
||||
|
||||
Set to ``TRUE`` when the :find-component:`fs.Experimental` version of C++
|
||||
filesystem library was found, otherwise ``FALSE``.
|
||||
|
||||
.. variable:: CXX_FILESYSTEM_HAVE_FS
|
||||
|
||||
Set to ``TRUE`` when a filesystem header was found.
|
||||
|
||||
.. variable:: CXX_FILESYSTEM_HEADER
|
||||
|
||||
Set to either ``filesystem`` or ``experimental/filesystem`` depending on
|
||||
whether :find-component:`fs.Final` or :find-component:`fs.Experimental` was
|
||||
found.
|
||||
|
||||
.. variable:: CXX_FILESYSTEM_NAMESPACE
|
||||
|
||||
Set to either ``std::filesystem`` or ``std::experimental::filesystem``
|
||||
depending on whether :find-component:`fs.Final` or
|
||||
:find-component:`fs.Experimental` was found.
|
||||
|
||||
|
||||
Examples
|
||||
********
|
||||
|
||||
Using `find_package(Filesystem)` with no component arguments:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
find_package(Filesystem REQUIRED)
|
||||
|
||||
add_executable(my-program main.cpp)
|
||||
target_link_libraries(my-program PRIVATE std::filesystem)
|
||||
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
|
||||
if(TARGET std::filesystem)
|
||||
# This module has already been processed. Don't do it again.
|
||||
return()
|
||||
endif()
|
||||
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
include(CMakePushCheckState)
|
||||
include(CheckIncludeFileCXX)
|
||||
|
||||
# If we're not cross-compiling, try to run test executables.
|
||||
# Otherwise, assume that compile + link is a sufficient check.
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
include(CheckCXXSourceCompiles)
|
||||
macro(_cmcm_check_cxx_source code var)
|
||||
check_cxx_source_compiles("${code}" ${var})
|
||||
endmacro()
|
||||
else()
|
||||
include(CheckCXXSourceRuns)
|
||||
macro(_cmcm_check_cxx_source code var)
|
||||
check_cxx_source_runs("${code}" ${var})
|
||||
endmacro()
|
||||
endif()
|
||||
|
||||
cmake_push_check_state()
|
||||
|
||||
set(CMAKE_REQUIRED_QUIET ${Filesystem_FIND_QUIETLY})
|
||||
|
||||
# All of our tests required C++17 or later
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Normalize and check the component list we were given
|
||||
set(want_components ${Filesystem_FIND_COMPONENTS})
|
||||
if(Filesystem_FIND_COMPONENTS STREQUAL "")
|
||||
set(want_components Final)
|
||||
endif()
|
||||
|
||||
# Warn on any unrecognized components
|
||||
set(extra_components ${want_components})
|
||||
list(REMOVE_ITEM extra_components Final Experimental)
|
||||
foreach(component IN LISTS extra_components)
|
||||
message(WARNING "Extraneous find_package component for Filesystem: ${component}")
|
||||
endforeach()
|
||||
|
||||
# Detect which of Experimental and Final we should look for
|
||||
set(find_experimental TRUE)
|
||||
set(find_final TRUE)
|
||||
if(NOT "Final" IN_LIST want_components)
|
||||
set(find_final FALSE)
|
||||
endif()
|
||||
if(NOT "Experimental" IN_LIST want_components)
|
||||
set(find_experimental FALSE)
|
||||
endif()
|
||||
|
||||
if(find_final)
|
||||
check_include_file_cxx("filesystem" _CXX_FILESYSTEM_HAVE_HEADER)
|
||||
mark_as_advanced(_CXX_FILESYSTEM_HAVE_HEADER)
|
||||
if(_CXX_FILESYSTEM_HAVE_HEADER)
|
||||
# We found the non-experimental header. Don't bother looking for the
|
||||
# experimental one.
|
||||
set(find_experimental FALSE)
|
||||
endif()
|
||||
else()
|
||||
set(_CXX_FILESYSTEM_HAVE_HEADER FALSE)
|
||||
endif()
|
||||
|
||||
if(find_experimental)
|
||||
check_include_file_cxx("experimental/filesystem" _CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER)
|
||||
mark_as_advanced(_CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER)
|
||||
else()
|
||||
set(_CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER FALSE)
|
||||
endif()
|
||||
|
||||
if(_CXX_FILESYSTEM_HAVE_HEADER)
|
||||
set(_have_fs TRUE)
|
||||
set(_fs_header filesystem)
|
||||
set(_fs_namespace std::filesystem)
|
||||
set(_is_experimental FALSE)
|
||||
elseif(_CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER)
|
||||
set(_have_fs TRUE)
|
||||
set(_fs_header experimental/filesystem)
|
||||
set(_fs_namespace std::experimental::filesystem)
|
||||
set(_is_experimental TRUE)
|
||||
else()
|
||||
set(_have_fs FALSE)
|
||||
endif()
|
||||
|
||||
set(CXX_FILESYSTEM_HAVE_FS ${_have_fs} CACHE BOOL "TRUE if we have the C++ filesystem headers")
|
||||
set(CXX_FILESYSTEM_HEADER ${_fs_header} CACHE STRING "The header that should be included to obtain the filesystem APIs")
|
||||
set(CXX_FILESYSTEM_NAMESPACE ${_fs_namespace} CACHE STRING "The C++ namespace that contains the filesystem APIs")
|
||||
set(CXX_FILESYSTEM_IS_EXPERIMENTAL ${_is_experimental} CACHE BOOL "TRUE if the C++ filesystem library is the experimental version")
|
||||
|
||||
set(_found FALSE)
|
||||
|
||||
if(CXX_FILESYSTEM_HAVE_FS)
|
||||
# We have some filesystem library available. Do link checks
|
||||
string(CONFIGURE [[
|
||||
#include <cstdlib>
|
||||
#include <@CXX_FILESYSTEM_HEADER@>
|
||||
|
||||
int main() {
|
||||
auto cwd = @CXX_FILESYSTEM_NAMESPACE@::current_path();
|
||||
printf("%s", cwd.c_str());
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
]] code @ONLY)
|
||||
|
||||
# Check a simple filesystem program without any linker flags
|
||||
_cmcm_check_cxx_source("${code}" CXX_FILESYSTEM_NO_LINK_NEEDED)
|
||||
|
||||
set(can_link ${CXX_FILESYSTEM_NO_LINK_NEEDED})
|
||||
|
||||
if(NOT CXX_FILESYSTEM_NO_LINK_NEEDED)
|
||||
set(prev_libraries ${CMAKE_REQUIRED_LIBRARIES})
|
||||
# Add the libstdc++ flag
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${prev_libraries} -lstdc++fs)
|
||||
_cmcm_check_cxx_source("${code}" CXX_FILESYSTEM_STDCPPFS_NEEDED)
|
||||
set(can_link ${CXX_FILESYSTEM_STDCPPFS_NEEDED})
|
||||
if(NOT CXX_FILESYSTEM_STDCPPFS_NEEDED)
|
||||
# Try the libc++ flag
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${prev_libraries} -lc++fs)
|
||||
_cmcm_check_cxx_source("${code}" CXX_FILESYSTEM_CPPFS_NEEDED)
|
||||
set(can_link ${CXX_FILESYSTEM_CPPFS_NEEDED})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(can_link)
|
||||
add_library(std::filesystem INTERFACE IMPORTED)
|
||||
set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_17)
|
||||
set(_found TRUE)
|
||||
|
||||
if(CXX_FILESYSTEM_NO_LINK_NEEDED)
|
||||
# Nothing to add...
|
||||
elseif(CXX_FILESYSTEM_STDCPPFS_NEEDED)
|
||||
set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_LINK_LIBRARIES -lstdc++fs)
|
||||
elseif(CXX_FILESYSTEM_CPPFS_NEEDED)
|
||||
set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_LINK_LIBRARIES -lc++fs)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
cmake_pop_check_state()
|
||||
|
||||
set(Filesystem_FOUND ${_found} CACHE BOOL "TRUE if we can run a program using std::filesystem" FORCE)
|
||||
|
||||
if(Filesystem_FIND_REQUIRED AND NOT Filesystem_FOUND)
|
||||
message(FATAL_ERROR "Cannot run simple program using std::filesystem")
|
||||
endif()
|
||||
37
DPP/cmake/FindOpus.cmake
Normal file
37
DPP/cmake/FindOpus.cmake
Normal file
@@ -0,0 +1,37 @@
|
||||
# OPUS_FOUND - system has opus
|
||||
# OPUS_INCLUDE_DIRS - the opus include directory
|
||||
# OPUS_LIBRARIES - The libraries needed to use opus
|
||||
|
||||
find_path(OPUS_INCLUDE_DIRS
|
||||
NAMES opus/opus.h
|
||||
PATH_SUFFIXES include
|
||||
)
|
||||
if(OPUS_INCLUDE_DIRS)
|
||||
set(HAVE_OPUS_OPUS_H 1)
|
||||
endif()
|
||||
|
||||
if(OPUS_USE_STATIC_LIBS)
|
||||
find_library(OPUS_LIBRARIES NAMES "libopus.a")
|
||||
else()
|
||||
find_library(OPUS_LIBRARIES NAMES opus)
|
||||
endif()
|
||||
|
||||
if(OPUS_LIBRARIES)
|
||||
if(OPUS_USE_STATIC_LIBS)
|
||||
# on linux with glibc you CANT statically link libm without statically linking all of glibc. DONT DO IT.
|
||||
#find_library(LIBM NAMES "libm.a" "libm.tbd")
|
||||
else()
|
||||
find_library(LIBM NAMES m)
|
||||
endif()
|
||||
if(LIBM)
|
||||
list(APPEND OPUS_LIBRARIES ${LIBM})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Opus
|
||||
DEFAULT_MSG
|
||||
OPUS_INCLUDE_DIRS OPUS_LIBRARIES HAVE_OPUS_OPUS_H
|
||||
)
|
||||
|
||||
mark_as_advanced(OPUS_INCLUDE_DIRS OPUS_LIBRARIES HAVE_OPUS_OPUS_H)
|
||||
33
DPP/cmake/LINUXx86ToolChain.cmake
Normal file
33
DPP/cmake/LINUXx86ToolChain.cmake
Normal file
@@ -0,0 +1,33 @@
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
# Possibly needed tweak
|
||||
#SET(CMAKE_SYSTEM_PROCESSOR i386)
|
||||
|
||||
SET(CMAKE_C_COMPILER gcc-10)
|
||||
SET(CMAKE_CXX_COMPILER g++-10)
|
||||
|
||||
# Below call is necessary to avoid non-RT problem.
|
||||
SET(CMAKE_LIBRARY_ARCHITECTURE i386-linux-gnu)
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386)
|
||||
SET(CPACK_RPM_PACKAGE_ARCHITECTURE i686)
|
||||
|
||||
#If you have installed cross compiler to somewhere else, please specify that path.
|
||||
SET(COMPILER_ROOT /usr/bin)
|
||||
|
||||
INCLUDE_DIRECTORIES(
|
||||
/usr/include/i386-linux-gnu)
|
||||
|
||||
SET(ZLIB_LIBRARY /lib/i386-linux-gnu/libz.so.1.2.11)
|
||||
SET(OPENSSL_CRYPTO_LIBRARY /usr/lib/i386-linux-gnu/libcrypto.so)
|
||||
SET(OPENSSL_SSL_LIBRARY /usr/lib/i386-linux-gnu/libssl.so)
|
||||
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 " CACHE INTERNAL "" FORCE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 " CACHE INTERNAL "" FORCE)
|
||||
set(T_AVX_EXITCODE "0" CACHE STRING INTERNAL FORCE)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND sudo dpkg --add-architecture i386)
|
||||
EXECUTE_PROCESS(COMMAND sudo apt-get update)
|
||||
EXECUTE_PROCESS(COMMAND sudo apt-get install -qq -y g++-10 gcc-10-multilib glibc-*:i386 libc6-dev-i386 g++-10-multilib zlib1g-dev:i386 libssl-dev:i386 libopus-dev:i386)
|
||||
EXECUTE_PROCESS(COMMAND export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/)
|
||||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
|
||||
|
||||
11
DPP/cmake/PostInstall.cmake
Normal file
11
DPP/cmake/PostInstall.cmake
Normal file
@@ -0,0 +1,11 @@
|
||||
if (RUN_LDCONFIG)
|
||||
if(LDCONFIG_EXECUTABLE)
|
||||
message(STATUS "Running ldconfig")
|
||||
|
||||
execute_process(COMMAND ${LDCONFIG_EXECUTABLE} RESULT_VARIABLE ldconfig_result)
|
||||
|
||||
if (NOT ldconfig_result EQUAL 0)
|
||||
message(WARNING "ldconfig failed")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
4
DPP/cmake/Raw-Files/dpp.json
Normal file
4
DPP/cmake/Raw-Files/dpp.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"versions": [
|
||||
]
|
||||
}
|
||||
31
DPP/cmake/Win32Toolchain.cmake
Normal file
31
DPP/cmake/Win32Toolchain.cmake
Normal file
@@ -0,0 +1,31 @@
|
||||
message("-- Building for windows (x86) with precompiled packaged dependencies")
|
||||
|
||||
#set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||
set(ZLIB_LIBRARIES "${PROJECT_SOURCE_DIR}/win32/32/lib")
|
||||
set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/win32/include")
|
||||
set(OPENSSL_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/win32/include")
|
||||
set(OPENSSL_LIBRARIES "${PROJECT_SOURCE_DIR}/win32/32/lib")
|
||||
ADD_DEFINITIONS(/bigobj)
|
||||
|
||||
link_libraries("${PROJECT_SOURCE_DIR}/win32/32/lib/libssl.lib")
|
||||
link_libraries("${PROJECT_SOURCE_DIR}/win32/32/lib/libcrypto.lib")
|
||||
link_libraries("${PROJECT_SOURCE_DIR}/win32/32/lib/zlib.lib")
|
||||
link_libraries("${PROJECT_SOURCE_DIR}/win32/32/lib/opus.lib")
|
||||
|
||||
set(OPUS_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/win32/include")
|
||||
set(OPUS_LIBRARIES "${PROJECT_SOURCE_DIR}/win32/32/lib/opus.lib")
|
||||
set(HAVE_OPUS_OPUS_H "${PROJECT_SOURCE_DIR}/win32/include/opus/opus.h")
|
||||
set(OPUS_FOUND 1)
|
||||
|
||||
include_directories("${PROJECT_SOURCE_DIR}/win32/include")
|
||||
|
||||
add_compile_definitions(OPENSSL_SYS_WIN32)
|
||||
add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS)
|
||||
add_compile_definitions(WIN32_LEAN_AND_MEAN)
|
||||
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
|
||||
add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE)
|
||||
|
||||
SET(WINDOWS_32_BIT 1)
|
||||
|
||||
# BIG FAT STINKY KLUDGE
|
||||
SET(CMAKE_CXX_COMPILER_WORKS 1)
|
||||
19
DPP/cmake/colour.cmake
Normal file
19
DPP/cmake/colour.cmake
Normal file
@@ -0,0 +1,19 @@
|
||||
if(NOT WIN32)
|
||||
string(ASCII 27 Esc)
|
||||
set(ColourReset "${Esc}[m")
|
||||
set(ColourBold "${Esc}[1m")
|
||||
set(Red "${Esc}[31m")
|
||||
set(Green "${Esc}[32m")
|
||||
set(Yellow "${Esc}[33m")
|
||||
set(Blue "${Esc}[34m")
|
||||
set(Magenta "${Esc}[35m")
|
||||
set(Cyan "${Esc}[36m")
|
||||
set(White "${Esc}[37m")
|
||||
set(BoldRed "${Esc}[1;31m")
|
||||
set(BoldGreen "${Esc}[1;32m")
|
||||
set(BoldYellow "${Esc}[1;33m")
|
||||
set(BoldBlue "${Esc}[1;34m")
|
||||
set(BoldMagenta "${Esc}[1;35m")
|
||||
set(BoldCyan "${Esc}[1;36m")
|
||||
set(BoldWhite "${Esc}[1;37m")
|
||||
endif()
|
||||
21
DPP/cmake/dpp-config.cmake
Normal file
21
DPP/cmake/dpp-config.cmake
Normal file
@@ -0,0 +1,21 @@
|
||||
# dpp-config.cmake - package configuration file
|
||||
|
||||
## Get current filesystem path (will a prefixed by where this package was installed)
|
||||
get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
|
||||
## Use this directory to include dpp which has the rest of the project targets
|
||||
include(${SELF_DIR}/dpp.cmake)
|
||||
|
||||
## Set OpenSSl directory for macos. It is also in our main CMakeLists.txt, but this file is independent from that.
|
||||
if(APPLE)
|
||||
if(CMAKE_APPLE_SILICON_PROCESSOR)
|
||||
set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl")
|
||||
else()
|
||||
set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl")
|
||||
endif()
|
||||
find_package(OpenSSL REQUIRED)
|
||||
endif()
|
||||
|
||||
# Search for libdpp dependencies
|
||||
include(CMakeFindDependencyMacro)
|
||||
find_dependency(OpenSSL REQUIRED)
|
||||
18
DPP/cmake/dppConfig.cmake.in
Normal file
18
DPP/cmake/dppConfig.cmake.in
Normal file
@@ -0,0 +1,18 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
set_and_check(EXPORT_TARGETS_FILE_NEW "@PACKAGE_EXPORTED_TARGETS_FILE_PATH@")
|
||||
|
||||
include("${EXPORT_TARGETS_FILE_NEW}")
|
||||
|
||||
if (WIN32)
|
||||
if (EXISTS "@PACKAGE_RELEASE_PDB_FILE_PATH@")
|
||||
set_and_check(RELEASE_PDB_FILE_PATH "@PACKAGE_RELEASE_PDB_FILE_PATH@")
|
||||
cmake_path(GET RELEASE_PDB_FILE_PATH FILENAME RELEASE_PDB_FILE_NAME)
|
||||
endif()
|
||||
if (EXISTS "@PACKAGE_DEBUG_PDB_FILE_PATH@")
|
||||
set_and_check(DEBUG_PDB_FILE_PATH "@PACKAGE_DEBUG_PDB_FILE_PATH@")
|
||||
cmake_path(GET DEBUG_PDB_FILE_PATH FILENAME DEBUG_PDB_FILE_NAME)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
check_required_components("@PROJECT_NAME@")
|
||||
Reference in New Issue
Block a user