diff --git a/3rdparty/monero_crypto/CMakeLists.txt b/3rdparty/monero_crypto/CMakeLists.txt index 3f010fd897b9619f86f5b5abbe70fab5fe578179..278ad371273a6b6066794b446b29afcdeba11543 100755 --- a/3rdparty/monero_crypto/CMakeLists.txt +++ b/3rdparty/monero_crypto/CMakeLists.txt @@ -72,20 +72,6 @@ else() set(OPT_FLAGS_RELEASE "-Ofast") endif() -# Check whether we're on a 32-bit or 64-bit system -if(CMAKE_SIZEOF_VOID_P EQUAL "8") - set(DEFAULT_BUILD_64 ON) -else() - set(DEFAULT_BUILD_64 OFF) -endif() -option(BUILD_64 "Build for 64-bit? 'OFF' builds for 32-bit." ${DEFAULT_BUILD_64}) - -if(BUILD_64) - set(ARCH_WIDTH "64") -else() - set(ARCH_WIDTH "32") -endif() -message(STATUS "Building for a ${ARCH_WIDTH}-bit system") # Check if we're on FreeBSD so we can exclude the local miniupnpc (it should be installed from ports instead) # CMAKE_SYSTEM_NAME checks are commonly known, but specifically taken from libsdl's CMakeLists @@ -120,7 +106,7 @@ if(MSVC) include_directories(SYSTEM src/platform/msc) else() set(ARCH native CACHE STRING "CPU to build for: -march value or 'default' to not pass -march at all") - message(STATUS "Building on ${CMAKE_SYSTEM_PROCESSOR} for ${ARCH}") + message(STATUS "[*] Building on ${CMAKE_SYSTEM_PROCESSOR} for ${ARCH}") if(ARCH STREQUAL "default") set(ARCH_FLAG "") elseif(PPC64LE) @@ -167,32 +153,32 @@ else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") - option(NO_AES "Explicitly disable AES support" ${NO_AES}) + option(NO_AES "[!] Explicitly disable AES support" ${NO_AES}) if(NO_AES) - message(STATUS "AES support explicitly disabled") + message(STATUS "[!] AES support explicitly disabled") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_AES") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNO_AES") elseif(NOT ARM AND NOT PPC64LE) - message(STATUS "AES support enabled") + message(STATUS "[ ] AES support enabled") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes") elseif(PPC64LE) - message(STATUS "AES support not available on ppc64le") + message(STATUS "[!] AES support not available on ppc64le") elseif(ARM6) - message(STATUS "AES support not available on ARMv6") + message(STATUS "[!] AES support not available on ARMv6") elseif(ARM7) - message(STATUS "AES support not available on ARMv7") + message(STATUS "[!] AES support not available on ARMv7") elseif(ARM8 AND NOT ANDROID) CHECK_CXX_ACCEPTS_FLAG("-march=${ARCH}+crypto" ARCH_PLUS_CRYPTO) if(ARCH_PLUS_CRYPTO) - message(STATUS "Crypto extensions enabled for ARMv8") + message(STATUS "[*] Crypto extensions enabled for ARMv8") set(ARCH_FLAG "-march=${ARCH}+crypto") else() - message(STATUS "Crypto extensions unavailable on your ARMv8 device") + message(STATUS "[!] Crypto extensions unavailable on your ARMv8 device") endif() else() - message(STATUS "AES support disabled") + message(STATUS "[!] AES support disabled") endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_CPP_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG}") @@ -202,7 +188,7 @@ else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") if(ARM) - message(STATUS "Setting FPU Flags for ARM Processors") + message(STATUS "[ ] Setting FPU Flags for ARM Processors") #NB NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic #Need custom assembly code to take full advantage of NEON SIMD @@ -231,44 +217,44 @@ else() endif() if(ARM6) - message(STATUS "Selecting VFP for ARMv6") + message(STATUS "[ ] Selecting VFP for ARMv6") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp") endif(ARM6) if(ARM7) if(CXX_ACCEPTS_VFP3_D16 AND NOT CXX_ACCEPTS_VFP4) - message(STATUS "Selecting VFP3 for ARMv7") + message(STATUS "[ ] Selecting VFP3 for ARMv7") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp3-d16") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp3-d16") endif() if(CXX_ACCEPTS_VFP4) - message(STATUS "Selecting VFP4 for ARMv7") + message(STATUS "[ ] Selecting VFP4 for ARMv7") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp4") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=vfp4") endif() if(CXX_ACCEPTS_MFLOAT_HARD) - message(STATUS "Setting Hardware ABI for Floating Point") + message(STATUS "[ ] Setting Hardware ABI for Floating Point") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfloat-abi=hard") endif() if(CXX_ACCEPTS_MFLOAT_SOFTFP AND NOT CXX_ACCEPTS_MFLOAT_HARD) - message(STATUS "Setting Software ABI for Floating Point") + message(STATUS "[ ] Setting Software ABI for Floating Point") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=softfp") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfloat-abi=softfp") endif() endif(ARM7) if(ARM8) if(CXX_ACCEPTS_MFIX_CORTEX_A53_835769) - message(STATUS "Enabling Cortex-A53 workaround 835769") + message(STATUS "[ ] Enabling Cortex-A53 workaround 835769") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfix-cortex-a53-835769") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfix-cortex-a53-835769") endif() if(CXX_ACCEPTS_MFIX_CORTEX_A53_843419) - message(STATUS "Enabling Cortex-A53 workaround 843419") + message(STATUS "[ ] Enabling Cortex-A53 workaround 843419") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfix-cortex-a53-843419") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfix-cortex-a53-843419") endif() @@ -277,7 +263,7 @@ else() endif(ARM) if(ANDROID AND NOT BUILD_GUI_DEPS STREQUAL "ON" OR IOS) #From Android 5: "only position independent executables (PIE) are supported" - message(STATUS "Enabling PIE executable") + message(STATUS "[ ] Enabling PIE executable") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -pie") @@ -379,7 +365,7 @@ if (ARM) option(NO_OPTIMIZED_MULTIPLY_ON_ARM "Compute multiply using generic C implementation instead of ARM ASM" OFF) if(NO_OPTIMIZED_MULTIPLY_ON_ARM) - message(STATUS "Using generic C implementation for multiply") + message(STATUS "[ ] Using generic C implementation for multiply") set_property(SOURCE slow-hash.c PROPERTY COMPILE_DEFINITIONS "NO_OPTIMIZED_MULTIPLY_ON_ARM") endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b0b4cfebdd67ef29b3a37bd9db3356ba8643fb0..beeb86ed1cc4119a5f62b607a00957c05d383f5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 2.8) set(CMAKE_C_STANDARD 11) set(CELLFRAME_SDK_NATIVE_VERSION "2.1-4") -include(cmake/OS_Detection.cmake) add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") @@ -12,6 +11,7 @@ if (CELLFRAME_MODULES MATCHES "core") SET(DAPSDK_MODULES "${DAPSDK_MODULES} core crypto") endif() + if (CELLFRAME_MODULES MATCHES "network") set(DAPSDK_MODULES "${DAPSDK_MODULES} network-core network-client network-server") endif() @@ -26,6 +26,15 @@ if (BUILD_CRYPTO_TESTS) set(BUILD_TESTS ON) endif() +if(BUILD_TESTS) + include(cmake/OS_Detection.cmake) +endif() + +if(DAP_TUN_NEW_WORKER) + message("[*] New TUN worker processor enabled") + add_definitions ("-DDAP_TUN_IN_WORKER") +endif() + add_subdirectory(dap-sdk) add_subdirectory(3rdparty/monero_crypto) add_subdirectory(3rdparty/cuttdb) diff --git a/cmake/OS_Detection.cmake b/cmake/OS_Detection.cmake index 285ef67930e9403e85e2d019851436725f2f204d..256ee957fcaa64d365e5a621122e930c5351b464 100644 --- a/cmake/OS_Detection.cmake +++ b/cmake/OS_Detection.cmake @@ -6,27 +6,25 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") EXECUTE_PROCESS( COMMAND cat /etc/os-release COMMAND grep VERSION_ID COMMAND sed s/VERSION_ID=// COMMAND tr -d '\n' COMMAND sed s/\\x22// COMMAND sed s/\\x22// OUTPUT_VARIABLE L_DEBIAN_OS_VERSION) SET(DEBIAN_OS_NAME "${L_DEBIAN_OS_NAME}") SET(DEBIAN_OS_VERSION ${L_DEBIAN_OS_VERSION}) - message("Debian OS ${DEBIAN_OS_VERSION} (${DEBIAN_OS_NAME})") + message("[ ] Debian OS ${DEBIAN_OS_VERSION} (${DEBIAN_OS_NAME})") # check if we're building natively on Android (TERMUX) EXECUTE_PROCESS( COMMAND uname -o COMMAND tr -d '\n' OUTPUT_VARIABLE OPERATING_SYSTEM) elseif(${CMAKE_SYSTEM_NAME} MATCHES "Android") - message("ANDROID") set(ANDROID ON) set(UNIX ON) set(LINUX ON) set(OS_TYPE_MOBILE ON) - message("ANDROID build") + message("[*] ANDROID build") add_definitions(-DANDROID -DDAP_OS_ANDROID) elseif(${CMAKE_SYSTEM_NAME} MATCHES "Win") - message("Win build") set(OS_TYPE_DESKTOP ON) endif() if((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (DAP_DEBUG)) - message("Debug build") + message("[!] Debug build") SET(DAP_DEBUG ON) else() - message("Release build") + message("[!] Release build") SET(DAP_RELEASE ON) endif() @@ -42,7 +40,7 @@ if(BUILD_64) else() set(ARCH_WIDTH "32") endif() -message(STATUS "Building for a ${ARCH_WIDTH}-bit system") +message(STATUS "[*] Building for a ${ARCH_WIDTH}-bit system") if(UNIX) add_definitions ("-DDAP_OS_LINUX -DDAP_OS_UNIX") @@ -73,7 +71,7 @@ if(UNIX) endif() if(WIN32) - message(STATUS "Building for Windows") + message(STATUS "[*] Building for Windows") add_definitions("-DHAVE_PREAD") add_definitions("-DHAVE_MMAP") add_definitions("-DHAVE_STRNDUP") diff --git a/dap-sdk/core/CMakeLists.txt b/dap-sdk/core/CMakeLists.txt index 31c0eea678deae9981cbe572f79b2145150b5bc3..57bd4716a4625a13f94bd30ce0306df8d3358cf5 100755 --- a/dap-sdk/core/CMakeLists.txt +++ b/dap-sdk/core/CMakeLists.txt @@ -28,53 +28,6 @@ if(WIN32) ) endif() -if(NOT SUBMODULES_NO_BUILD) - - # Check whether we're on a 32-bit or 64-bit system - if(CMAKE_SIZEOF_VOID_P EQUAL "8") - set(DEFAULT_BUILD_64 ON) - else() - set(DEFAULT_BUILD_64 OFF) - endif() - option(BUILD_64 "Build for 64-bit? 'OFF' builds for 32-bit." ${DEFAULT_BUILD_64}) - - - if(WIN32) - - add_definitions ("-DUNDEBUG") - add_definitions ("-DNDEBUG") - add_definitions ("-DWIN32") - add_definitions ("-D_WINDOWS") - add_definitions ("-D__WINDOWS__") - add_definitions ("-D_CRT_SECURE_NO_WARNINGS") - -# if(DAP_RELEASE) - set(_CCOPT "-mwindows -static -Wall -O3 -fno-ident -ffast-math -ftree-vectorize -mfpmath=sse -mmmx -msse2 -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all") -# else() -# set(_CCOPT "-mconsole -static -Wall -pg") -# set(_LOPT "-mconsole -static -pg") -# endif() - - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") - set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${_LOPT}") - endif() - - if(UNIX) - add_definitions ("-DDAP_OS_LINUX") - - if(DAP_RELEASE) - set(_CCOPT "-Wall -O3 -fPIC -fno-pie -no-pie -fno-ident -ffast-math -ftree-vectorize -mfpmath=sse -mmmx -msse2 -fno-asynchronous-unwind-tables -ffunction-sections -Wl,--gc-sections -Wl,--strip-all") - else() - set(_CCOPT "-Wall -pg -fPIC -fno-pie -no-pie") - set(_LOPT "-pg") - SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg") - endif() - - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") - set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${_LOPT}") - endif() -endif() - add_library(${PROJECT_NAME} STATIC ${CORE_SRCS} ${CORE_HEADERS}) #This paths will be used by project-dependent project libraries @@ -84,10 +37,6 @@ if(WIN32) include_directories(include/) endif() -if ( ${CMAKE_SYSTEM_NAME} MATCHES "Linux" ) - set(LINUX "Linux") -endif() - if(UNIX) add_subdirectory(src/unix) target_link_libraries(${PROJECT_NAME} dap_core_unix rt) diff --git a/dap-sdk/crypto/CMakeLists.txt b/dap-sdk/crypto/CMakeLists.txt index 51423bd00b470a69dadef7c609044279744e2b42..68ac022fd8446202052c3b71e73e6681f4669379 100755 --- a/dap-sdk/crypto/CMakeLists.txt +++ b/dap-sdk/crypto/CMakeLists.txt @@ -3,27 +3,6 @@ project (dap_crypto) # fix implicit declaration warnings add_definitions ("-D_GNU_SOURCE") -if(NOT SUBMODULES_NO_BUILD) - - # Check whether we're on a 32-bit or 64-bit system - if(CMAKE_SIZEOF_VOID_P EQUAL "8") - set(DEFAULT_BUILD_64 ON) - else() - set(DEFAULT_BUILD_64 OFF) - endif() - option(BUILD_64 "Build for 64-bit? 'OFF' builds for 32-bit." ${DEFAULT_BUILD_64}) - - - set(_CCOPT "-Wall -O2 -pg -fPIC -fno-pie -no-pie") - set(_LOPT "-pg") - SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_CCOPT}") - set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} ${_LOPT}") - - if (NOT (TARGET dap_core)) - add_subdirectory(libdap) - endif() -endif() file( GLOB CRYPTO_SRCS src/*.c