mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-14 10:37:23 -07:00
Add cmake support
This commit is contained in:
parent
edb96e75cf
commit
6b1a8b8390
11 changed files with 908 additions and 0 deletions
424
client/CMakeLists.txt
Normal file
424
client/CMakeLists.txt
Normal file
|
@ -0,0 +1,424 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
project(proxmark3)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
||||
find_package(Qt5 COMPONENTS Widgets Gui)
|
||||
|
||||
SET (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
|
||||
INCLUDE(FindSSE)
|
||||
#[[
|
||||
IF(SSE3_FOUND)
|
||||
IF(SSSE3_FOUND)
|
||||
SET(CXX_DFLAGS -msse3 -mssse3)
|
||||
ENDIF(SSSE3_FOUND)
|
||||
ENDIF(SSE3_FOUND)
|
||||
|
||||
IF(SSE4_2_FOUND)
|
||||
SET(CXX_DFLAGS -msse4.2 -mpopcnt)
|
||||
ENDIF(SSE4_2_FOUND)
|
||||
ADD_DEFINITIONS(${CXX_DFLAGS})
|
||||
]]
|
||||
if(NOT SSE2_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSE2 on this machine.")
|
||||
endif(NOT SSE2_FOUND)
|
||||
if(NOT SSE3_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSE3 on this machine.")
|
||||
endif(NOT SSE3_FOUND)
|
||||
if(NOT SSSE3_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSSE3 on this machine.")
|
||||
endif(NOT SSSE3_FOUND)
|
||||
if(NOT SSE4_1_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSE4.1 on this machine.")
|
||||
endif(NOT SSE4_1_FOUND)
|
||||
if(NOT AVX_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for AVX on this machine.")
|
||||
endif(NOT AVX_FOUND)
|
||||
if(NOT AVX2_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for AVX2 on this machine.")
|
||||
endif(NOT AVX2_FOUND)
|
||||
if(NOT AVX512_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for AVX512 on this machine.")
|
||||
endif(NOT AVX512_FOUND)
|
||||
|
||||
add_subdirectory(deps)
|
||||
|
||||
include_directories(
|
||||
..
|
||||
SYSTEM
|
||||
deps
|
||||
../common
|
||||
../include
|
||||
deps/jansson
|
||||
deps/tinycbor
|
||||
deps/liblua
|
||||
client/deps/mbedtls/include
|
||||
deps/amiitool
|
||||
deps/cliparser
|
||||
deps/reveng
|
||||
../common/zlib
|
||||
src
|
||||
src/uart
|
||||
)
|
||||
|
||||
#file(GLOB_RECURSE TARGET_HEADERS ${CMAKE_CURRENT_LIST_DIR}/src/*.h)
|
||||
#file(GLOB_RECURSE TARGET_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp)
|
||||
|
||||
set (TARGET_SOURCES
|
||||
src/proxmark3.c
|
||||
src/proxmark3.h
|
||||
../common/commonutil.c
|
||||
../common/commonutil.h
|
||||
../common/util_posix.c
|
||||
../common/util_posix.h
|
||||
../common/parity.c
|
||||
../common/parity.h
|
||||
../common/bucketsort.c
|
||||
../common/bucketsort.h
|
||||
../common/crapto1/crapto1.c
|
||||
../common/crapto1/crapto1.h
|
||||
../common/crapto1/crypto1.c
|
||||
../common/crc.c
|
||||
../common/crc.h
|
||||
../common/crc16.c
|
||||
../common/crc16.h
|
||||
../common/crc32.c
|
||||
../common/crc32.h
|
||||
../common/crc64.c
|
||||
../common/crc64.h
|
||||
../common/lfdemod.c
|
||||
../common/lfdemod.h
|
||||
../common/legic_prng.c
|
||||
../common/legic_prng.h
|
||||
../common/iso15693tools.c
|
||||
../common/iso15693tools.h
|
||||
../common/cardhelper.c
|
||||
../common/cardhelper.h
|
||||
../common/generator.c
|
||||
../common/generator.h
|
||||
deps/cliparser/argtable3.c
|
||||
deps/cliparser/argtable3.h
|
||||
deps/cliparser/cliparser.c
|
||||
deps/cliparser/cliparser.h
|
||||
deps/cliparser/getopt.h
|
||||
deps/hardnested/hardnested_bruteforce.c
|
||||
deps/hardnested/hardnested_bruteforce.h
|
||||
src/crypto/asn1dump.c
|
||||
src/crypto/asn1dump.h
|
||||
src/crypto/asn1utils.c
|
||||
src/crypto/asn1utils.h
|
||||
src/crypto/libpcrypto.c
|
||||
src/crypto/libpcrypto.h
|
||||
src/emv/test/cda_test.c
|
||||
src/emv/test/cda_test.h
|
||||
src/emv/test/crypto_test.c
|
||||
src/emv/test/crypto_test.h
|
||||
src/emv/test/cryptotest.c
|
||||
src/emv/test/cryptotest.h
|
||||
src/emv/test/dda_test.c
|
||||
src/emv/test/dda_test.h
|
||||
src/emv/test/sda_test.c
|
||||
src/emv/test/sda_test.h
|
||||
src/emv/apduinfo.c
|
||||
src/emv/apduinfo.h
|
||||
src/emv/cmdemv.c
|
||||
src/emv/cmdemv.h
|
||||
src/emv/crypto.c
|
||||
src/emv/crypto.h
|
||||
src/emv/crypto_backend.h
|
||||
src/emv/crypto_polarssl.c
|
||||
src/emv/dol.c
|
||||
src/emv/dol.h
|
||||
src/emv/dump.c
|
||||
src/emv/dump.h
|
||||
src/emv/emv_pk.c
|
||||
src/emv/emv_pk.h
|
||||
src/emv/emv_pki.c
|
||||
src/emv/emv_pki.h
|
||||
src/emv/emv_pki_priv.c
|
||||
src/emv/emv_pki_priv.h
|
||||
src/emv/emv_roca.c
|
||||
src/emv/emv_roca.h
|
||||
src/emv/emv_tags.c
|
||||
src/emv/emv_tags.h
|
||||
src/emv/emvcore.c
|
||||
src/emv/emvcore.h
|
||||
src/emv/emvjson.c
|
||||
src/emv/emvjson.h
|
||||
src/emv/tlv.c
|
||||
src/emv/tlv.h
|
||||
src/fido/additional_ca.c
|
||||
src/fido/additional_ca.h
|
||||
src/fido/cbortools.c
|
||||
src/fido/cbortools.h
|
||||
src/fido/cose.c
|
||||
src/fido/cose.h
|
||||
src/fido/fidocore.c
|
||||
src/fido/fidocore.h
|
||||
src/loclass/cipher.c
|
||||
src/loclass/cipher.h
|
||||
src/loclass/cipherutils.c
|
||||
src/loclass/cipherutils.h
|
||||
src/loclass/elite_crack.c
|
||||
src/loclass/elite_crack.h
|
||||
src/loclass/hash1_brute.c
|
||||
src/loclass/hash1_brute.h
|
||||
src/loclass/ikeys.c
|
||||
src/loclass/ikeys.h
|
||||
src/mifare/mad.c
|
||||
src/mifare/mad.h
|
||||
src/mifare/mfkey.c
|
||||
src/mifare/mfkey.h
|
||||
src/mifare/mifare4.c
|
||||
src/mifare/mifare4.h
|
||||
src/mifare/mifaredefault.c
|
||||
src/mifare/mifaredefault.h
|
||||
src/mifare/mifarehost.c
|
||||
src/mifare/mifarehost.h
|
||||
src/mifare/ndef.c
|
||||
src/mifare/ndef.h
|
||||
src/mifare/desfire_crypto.c
|
||||
src/mifare/desfire_crypto.h
|
||||
src/uart/uart.h
|
||||
src/uart/uart_posix.c
|
||||
src/uart/uart_win32.c
|
||||
src/ui/overlays.ui
|
||||
src/aidsearch.c
|
||||
src/aidsearch.h
|
||||
src/cmdanalyse.c
|
||||
src/cmdanalyse.h
|
||||
src/cmdcrc.c
|
||||
src/cmdcrc.h
|
||||
src/cmddata.c
|
||||
src/cmddata.h
|
||||
src/cmdflashmem.c
|
||||
src/cmdflashmem.h
|
||||
src/cmdflashmemspiffs.c
|
||||
src/cmdflashmemspiffs.h
|
||||
src/cmdhf.c
|
||||
src/cmdhf.h
|
||||
src/cmdhf14a.c
|
||||
src/cmdhf14a.h
|
||||
src/cmdhf14b.c
|
||||
src/cmdhf14b.h
|
||||
src/cmdhf15.c
|
||||
src/cmdhf15.h
|
||||
src/cmdhfcryptorf.c
|
||||
src/cmdhfcryptorf.h
|
||||
src/cmdhfepa.c
|
||||
src/cmdhfepa.h
|
||||
src/cmdhffelica.c
|
||||
src/cmdhffelica.h
|
||||
src/cmdhffido.c
|
||||
src/cmdhffido.h
|
||||
src/cmdhficlass.c
|
||||
src/cmdhficlass.h
|
||||
src/cmdhflegic.c
|
||||
src/cmdhflegic.h
|
||||
src/cmdhflist.c
|
||||
src/cmdhflist.h
|
||||
src/cmdhflto.c
|
||||
src/cmdhflto.h
|
||||
src/cmdhfmf.c
|
||||
src/cmdhfmf.h
|
||||
src/cmdhfmfdes.c
|
||||
src/cmdhfmfdes.h
|
||||
src/cmdhfmfhard.c
|
||||
src/cmdhfmfhard.h
|
||||
src/cmdhfmfp.c
|
||||
src/cmdhfmfp.h
|
||||
src/cmdhfmfu.c
|
||||
src/cmdhfmfu.h
|
||||
src/cmdhfthinfilm.c
|
||||
src/cmdhfthinfilm.h
|
||||
src/cmdhftopaz.c
|
||||
src/cmdhftopaz.h
|
||||
src/cmdhw.c
|
||||
src/cmdhw.h
|
||||
src/cmdlf.c
|
||||
src/cmdlf.h
|
||||
src/cmdlfawid.c
|
||||
src/cmdlfawid.h
|
||||
src/cmdlfcotag.c
|
||||
src/cmdlfcotag.h
|
||||
src/cmdlfem4x.c
|
||||
src/cmdlfem4x.h
|
||||
src/cmdlffdx.c
|
||||
src/cmdlffdx.h
|
||||
src/cmdlfgallagher.c
|
||||
src/cmdlfgallagher.h
|
||||
src/cmdlfguard.c
|
||||
src/cmdlfguard.h
|
||||
src/cmdlfhid.c
|
||||
src/cmdlfhid.h
|
||||
src/cmdlfhitag.c
|
||||
src/cmdlfhitag.h
|
||||
src/cmdlfindala.c
|
||||
src/cmdlfindala.h
|
||||
src/cmdlfio.c
|
||||
src/cmdlfio.h
|
||||
src/cmdlfjablotron.c
|
||||
src/cmdlfjablotron.h
|
||||
src/cmdlfkeri.c
|
||||
src/cmdlfkeri.h
|
||||
src/cmdlfmotorola.c
|
||||
src/cmdlfmotorola.h
|
||||
src/cmdlfnedap.c
|
||||
src/cmdlfnedap.h
|
||||
src/cmdlfnexwatch.c
|
||||
src/cmdlfnexwatch.h
|
||||
src/cmdlfnoralsy.c
|
||||
src/cmdlfnoralsy.h
|
||||
src/cmdlfpac.c
|
||||
src/cmdlfpac.h
|
||||
src/cmdlfparadox.c
|
||||
src/cmdlfparadox.h
|
||||
src/cmdlfpcf7931.c
|
||||
src/cmdlfpcf7931.h
|
||||
src/cmdlfpresco.c
|
||||
src/cmdlfpresco.h
|
||||
src/cmdlfpyramid.c
|
||||
src/cmdlfpyramid.h
|
||||
src/cmdlfsecurakey.c
|
||||
src/cmdlfsecurakey.h
|
||||
src/cmdlft55xx.c
|
||||
src/cmdlft55xx.h
|
||||
src/cmdlfti.c
|
||||
src/cmdlfti.h
|
||||
src/cmdlfverichip.c
|
||||
src/cmdlfverichip.h
|
||||
src/cmdlfviking.c
|
||||
src/cmdlfviking.h
|
||||
src/cmdlfvisa2000.c
|
||||
src/cmdlfvisa2000.h
|
||||
src/cmdmain.c
|
||||
src/cmdmain.h
|
||||
src/cmdparser.c
|
||||
src/cmdparser.h
|
||||
src/cmdscript.c
|
||||
src/cmdscript.h
|
||||
src/cmdsmartcard.c
|
||||
src/cmdsmartcard.h
|
||||
src/cmdtrace.c
|
||||
src/cmdtrace.h
|
||||
src/cmdusart.c
|
||||
src/cmdusart.h
|
||||
src/cmdwiegand.c
|
||||
src/cmdwiegand.h
|
||||
src/comms.c
|
||||
src/comms.h
|
||||
src/elf.h
|
||||
src/emojis.h
|
||||
src/emojis_alt.h
|
||||
src/fileutils.c
|
||||
src/fileutils.h
|
||||
src/flash.c
|
||||
src/flash.h
|
||||
src/graph.c
|
||||
src/graph.h
|
||||
src/guidummy.cpp
|
||||
src/preferences.c
|
||||
src/preferences.h
|
||||
src/pm3_binlib.c
|
||||
src/pm3_binlib.h
|
||||
src/pm3_bit_limits.h
|
||||
src/pm3_bitlib.c
|
||||
src/pm3_bitlib.h
|
||||
src/polarssl_config.h
|
||||
src/prng.c
|
||||
src/prng.h
|
||||
src/proxendian.h
|
||||
src/scandir.c
|
||||
src/scandir.h
|
||||
src/scripting.c
|
||||
src/scripting.h
|
||||
src/tea.c
|
||||
src/tea.h
|
||||
src/ui.c
|
||||
src/ui.h
|
||||
src/util.c
|
||||
src/util.h
|
||||
src/whereami.c
|
||||
src/whereami.h
|
||||
src/wiegand_formats.c
|
||||
src/wiegand_formats.h
|
||||
src/wiegand_formatutils.c
|
||||
src/wiegand_formatutils.h
|
||||
)
|
||||
|
||||
set(ADDITIONAL_SRC "")
|
||||
set(ADDITIONAL_LNK "")
|
||||
|
||||
set(X86_CPUS x86 x86_64 i686)
|
||||
|
||||
message(STATUS "CMAKE_SYSTEM_PROCESSOR := ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
|
||||
if (APPLE)
|
||||
message("Apple device detected.")
|
||||
set(ADDITIONAL_SRC src/util_darwin.h src/util_darwin.m ${ADDITIONAL_SRC})
|
||||
set(ADDITIONAL_LNK "-framework Foundation" "-framework AppKit")
|
||||
set_target_properties(proxmark3 PROPERTIES LINK_FLAGS "-Wl,-F/Library/Frameworks")
|
||||
endif (APPLE)
|
||||
|
||||
if (MINGW)
|
||||
set(CMAKE_CXX_FLAGS "-mno-ms-bitfields -fexec-charset=cp850 ${CMAKE_CXX_FLAGS}")
|
||||
endif (MINGW)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Werror -O3")
|
||||
|
||||
add_executable(
|
||||
proxmark3
|
||||
${TARGET_SOURCES}
|
||||
)
|
||||
|
||||
if(NOT Qt5_LIB)
|
||||
message("Qt5 library not found, not building gui")
|
||||
endif()
|
||||
if (Qt5_LIB)
|
||||
add_executable(proxguiqt
|
||||
src/proxgui.cpp
|
||||
src/proxgui.h
|
||||
src/proxguiqt.cpp
|
||||
src/proxguiqt.h)
|
||||
endif (Qt5_LIB)
|
||||
|
||||
|
||||
find_library(jansson REQUIRED)
|
||||
find_library(tinycbor REQUIRED)
|
||||
find_library(lua REQUIRED)
|
||||
find_library(mbedtls REQUIRED)
|
||||
find_library(reveng REQUIRED)
|
||||
find_library(z REQUIRED)
|
||||
find_library(hardnested REQUIRED)
|
||||
|
||||
target_include_directories(proxmark3 PUBLIC mbedtls jansson lua tinycbor amiibo reveng z hardnested)
|
||||
target_link_libraries(proxmark3 readline pthread m mbedtls jansson lua tinycbor amiibo reveng z hardnested ${ADDITIONAL_LNK})
|
||||
|
||||
install(TARGETS proxmark3 DESTINATION "bin")
|
||||
install(DIRECTORY cmdscripts lualibs luascripts resources dictionaries DESTINATION "share/proxmark3")
|
||||
|
||||
add_custom_command(OUTPUT lualibs/pm3_cmd.lua
|
||||
COMMAND "awk -f pm3_cmd_h2lua.awk ../include/pm3_cmd.h > lualibs/pm3_cmd.lua"
|
||||
COMMENT "Creating lualibs/pm3_cmd.lua"
|
||||
)
|
||||
|
||||
add_custom_command(OUTPUT lualibs/mfc_default_keys.lua
|
||||
COMMAND "awk -f default_keys_dic2lua.awk mfc_default_keys.dic > lualibs/mfc_default_keys.lua"
|
||||
COMMENT "Creating lualibs/mfc_default_keys.lua"
|
||||
)
|
||||
|
||||
add_custom_command(OUTPUT src/proxguiqt.moc.cpp
|
||||
COMMAND "$(MOC) -o src/proxguiqt.moc.cpp proxguiqt.h"
|
||||
COMMENT "Creating src/proxguiqt.moc.cpp"
|
||||
)
|
||||
|
||||
add_custom_command(OUTPUT src/ui/ui_overlays.h
|
||||
COMMAND "$(UIC) src/ui/overlays.ui > src/ui/ui_overlays.h"
|
||||
COMMENT "Creating ui/ui_overlays.h"
|
||||
)
|
||||
|
||||
#"make package" will trigger this
|
||||
SET(CPACK_GENERATOR "DEB")
|
||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Iceman")
|
||||
INCLUDE(CPack)
|
168
client/cmake/FindSSE.cmake
Normal file
168
client/cmake/FindSSE.cmake
Normal file
|
@ -0,0 +1,168 @@
|
|||
# Check if SSE/AVX instructions are available on the machine where
|
||||
# the project is compiled.
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
EXEC_PROGRAM(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(sse2).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "sse2" "${SSE_THERE}" SSE2_TRUE)
|
||||
IF (SSE2_TRUE)
|
||||
set(SSE2_FOUND true CACHE BOOL "SSE2 available on host")
|
||||
ELSE (SSE2_TRUE)
|
||||
set(SSE2_FOUND false CACHE BOOL "SSE2 available on host")
|
||||
ENDIF (SSE2_TRUE)
|
||||
|
||||
# /proc/cpuinfo apparently omits sse3 :(
|
||||
STRING(REGEX REPLACE "^.*[^s](sse3).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "sse3" "${SSE_THERE}" SSE3_TRUE)
|
||||
IF (NOT SSE3_TRUE)
|
||||
STRING(REGEX REPLACE "^.*(T2300).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "T2300" "${SSE_THERE}" SSE3_TRUE)
|
||||
ENDIF (NOT SSE3_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(ssse3).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "ssse3" "${SSE_THERE}" SSSE3_TRUE)
|
||||
IF (SSE3_TRUE OR SSSE3_TRUE)
|
||||
set(SSE3_FOUND true CACHE BOOL "SSE3 available on host")
|
||||
ELSE (SSE3_TRUE OR SSSE3_TRUE)
|
||||
set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
|
||||
ENDIF (SSE3_TRUE OR SSSE3_TRUE)
|
||||
IF (SSSE3_TRUE)
|
||||
set(SSSE3_FOUND true CACHE BOOL "SSSE3 available on host")
|
||||
ELSE (SSSE3_TRUE)
|
||||
set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host")
|
||||
ENDIF (SSSE3_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(sse4_1).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "sse4_1" "${SSE_THERE}" SSE41_TRUE)
|
||||
IF (SSE41_TRUE)
|
||||
set(SSE4_1_FOUND true CACHE BOOL "SSE4.1 available on host")
|
||||
ELSE (SSE41_TRUE)
|
||||
set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
|
||||
ENDIF (SSE41_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(avx).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "avx" "${SSE_THERE}" AVX_TRUE)
|
||||
IF (AVX_TRUE)
|
||||
set(AVX_FOUND true CACHE BOOL "AVX available on host")
|
||||
ELSE (AVX_TRUE)
|
||||
set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
||||
ENDIF (AVX_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(avx2).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "avx2" "${SSE_THERE}" AVX2_TRUE)
|
||||
IF (AVX2_TRUE)
|
||||
set(AVX2_FOUND true CACHE BOOL "AVX2 available on host")
|
||||
ELSE (AVX2_TRUE)
|
||||
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
|
||||
ENDIF (AVX2_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(avx512).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "avx512" "${SSE_THERE}" AVX2_TRUE)
|
||||
IF (AVX512_TRUE)
|
||||
set(AVX512_FOUND true CACHE BOOL "AVX512 available on host")
|
||||
ELSE (AVX2_TRUE)
|
||||
set(AVX512_FOUND false CACHE BOOL "AVX512 available on host")
|
||||
ENDIF (AVX512_TRUE)
|
||||
|
||||
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
EXEC_PROGRAM("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE
|
||||
CPUINFO)
|
||||
|
||||
STRING(REGEX REPLACE "^.*[^S](SSE2).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "SSE2" "${SSE_THERE}" SSE2_TRUE)
|
||||
IF (SSE2_TRUE)
|
||||
set(SSE2_FOUND true CACHE BOOL "SSE2 available on host")
|
||||
ELSE (SSE2_TRUE)
|
||||
set(SSE2_FOUND false CACHE BOOL "SSE2 available on host")
|
||||
ENDIF (SSE2_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*[^S](SSE3).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "SSE3" "${SSE_THERE}" SSE3_TRUE)
|
||||
IF (SSE3_TRUE)
|
||||
set(SSE3_FOUND true CACHE BOOL "SSE3 available on host")
|
||||
ELSE (SSE3_TRUE)
|
||||
set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
|
||||
ENDIF (SSE3_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(SSSE3).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "SSSE3" "${SSE_THERE}" SSSE3_TRUE)
|
||||
IF (SSSE3_TRUE)
|
||||
set(SSSE3_FOUND true CACHE BOOL "SSSE3 available on host")
|
||||
ELSE (SSSE3_TRUE)
|
||||
set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host")
|
||||
ENDIF (SSSE3_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(SSE4.1).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "SSE4.1" "${SSE_THERE}" SSE41_TRUE)
|
||||
IF (SSE41_TRUE)
|
||||
set(SSE4_1_FOUND true CACHE BOOL "SSE4.1 available on host")
|
||||
ELSE (SSE41_TRUE)
|
||||
set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
|
||||
ENDIF (SSE41_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(AVX).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "AVX" "${SSE_THERE}" AVX_TRUE)
|
||||
IF (AVX_TRUE)
|
||||
set(AVX_FOUND true CACHE BOOL "AVX available on host")
|
||||
ELSE (AVX_TRUE)
|
||||
set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
||||
ENDIF (AVX_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(AVX2).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "AVX2" "${SSE_THERE}" AVX2_TRUE)
|
||||
IF (AVX2_TRUE)
|
||||
set(AVX2_FOUND true CACHE BOOL "AVX2 available on host")
|
||||
ELSE (AVX2_TRUE)
|
||||
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
|
||||
ENDIF (AVX2_TRUE)
|
||||
|
||||
STRING(REGEX REPLACE "^.*(AVX512).*$" "\\1" SSE_THERE ${CPUINFO})
|
||||
STRING(COMPARE EQUAL "AVX512" "${SSE_THERE}" AVX2_TRUE)
|
||||
IF (AVX2_TRUE)
|
||||
set(AVX2_FOUND true CACHE BOOL "AVX512 available on host")
|
||||
ELSE (AVX2_TRUE)
|
||||
set(AVX2_FOUND false CACHE BOOL "AVX512 available on host")
|
||||
ENDIF (AVX2_TRUE)
|
||||
|
||||
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
# TODO
|
||||
set(SSE2_FOUND true CACHE BOOL "SSE2 available on host")
|
||||
set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
|
||||
set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host")
|
||||
set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
|
||||
set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
||||
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
|
||||
set(AVX512_FOUND false CACHE BOOL "AVX512 available on host")
|
||||
ELSE(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
set(SSE2_FOUND true CACHE BOOL "SSE2 available on host")
|
||||
set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
|
||||
set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host")
|
||||
set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
|
||||
set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
||||
set(AVX2_FOUND false CACHE BOOL "AVX2 available on host")
|
||||
set(AVX512_FOUND false CACHE BOOL "AVX512 available on host")
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
|
||||
if(NOT SSE2_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSE2 on this machine.")
|
||||
endif(NOT SSE2_FOUND)
|
||||
if(NOT SSE3_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSE3 on this machine.")
|
||||
endif(NOT SSE3_FOUND)
|
||||
if(NOT SSSE3_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSSE3 on this machine.")
|
||||
endif(NOT SSSE3_FOUND)
|
||||
if(NOT SSE4_1_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for SSE4.1 on this machine.")
|
||||
endif(NOT SSE4_1_FOUND)
|
||||
if(NOT AVX_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for AVX on this machine.")
|
||||
endif(NOT AVX_FOUND)
|
||||
if(NOT AVX2_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for AVX2 on this machine.")
|
||||
endif(NOT AVX2_FOUND)
|
||||
if(NOT AVX512_FOUND)
|
||||
MESSAGE(STATUS "Could not find hardware support for AVX512 on this machine.")
|
||||
endif(NOT AVX512_FOUND)
|
||||
mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND, AVX_FOUND, AVX2_FOUND)
|
8
client/deps/CMakeLists.txt
Normal file
8
client/deps/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
include(tinycbor.cmake)
|
||||
include(jansson.cmake)
|
||||
include(lua.cmake)
|
||||
include(mbedtls.cmake)
|
||||
include(amiibo.cmake)
|
||||
include(reveng.cmake)
|
||||
include(zlib.cmake)
|
||||
include(hardnested.cmake)
|
28
client/deps/amiibo.cmake
Normal file
28
client/deps/amiibo.cmake
Normal file
|
@ -0,0 +1,28 @@
|
|||
# just for testing amiitool before complete migration into a lib:
|
||||
|
||||
#amiitool:
|
||||
#gcc $(CFLAGS) \
|
||||
#amiitool.c $(MYSRCS) ../../../../common/../../commonutil.c ../ui.c -lreadline -lm ../../../../common/mbedtls/libmbedtls.a \
|
||||
#-o amiitool
|
||||
|
||||
set_property(SOURCE PROPERTY C_STANDARD 99)
|
||||
add_definitions(-D_ISOC99_SOURCE)
|
||||
include_directories(jansson)
|
||||
include_directories(../../common)
|
||||
include_directories(../../common/include)
|
||||
include_directories(amiitool)
|
||||
|
||||
add_library(amiibo
|
||||
jansson/dump.c
|
||||
jansson/error.c
|
||||
jansson/hashtable.c
|
||||
jansson/hashtable_seed.c
|
||||
jansson/load.c
|
||||
jansson/memory.c
|
||||
jansson/pack_unpack.c
|
||||
jansson/strbuffer.c
|
||||
jansson/strconv.c
|
||||
jansson/utf.c
|
||||
jansson/path.c
|
||||
jansson/value.c
|
||||
)
|
115
client/deps/hardnested.cmake
Normal file
115
client/deps/hardnested.cmake
Normal file
|
@ -0,0 +1,115 @@
|
|||
set_property(SOURCE PROPERTY C_STANDARD 99)
|
||||
add_definitions(-DHAVE_STDINT_H)
|
||||
include_directories(hardnested)
|
||||
|
||||
## CPU-specific code
|
||||
## These are mostly for x86-based architectures, which is not useful for many Android devices.
|
||||
add_library(hardnested_nosimd OBJECT
|
||||
hardnested/hardnested_bf_core.c
|
||||
hardnested/hardnested_bitarray_core.c)
|
||||
|
||||
target_include_directories(hardnested_nosimd PRIVATE
|
||||
../../common
|
||||
../../include
|
||||
hardnested)
|
||||
|
||||
set(X86_CPUS x86 x86_64 i686)
|
||||
|
||||
message(STATUS "CMAKE_SYSTEM_PROCESSOR := ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
|
||||
if ("${CMAKE_SYSTEM_PROCESSOR}" IN_LIST X86_CPUS)
|
||||
message(STATUS "Building optimised x86/x86_64 binaries")
|
||||
target_compile_options(hardnested_nosimd BEFORE PRIVATE
|
||||
-mno-mmx -mno-sse2 -mno-avx -mno-avx2 -mno-avx512f)
|
||||
|
||||
set_property(TARGET hardnested_nosimd PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
## x86 / MMX
|
||||
add_library(hardnested_mmx OBJECT
|
||||
hardnested/hardnested_bf_core.c
|
||||
hardnested/hardnested_bitarray_core.c)
|
||||
|
||||
target_compile_options(hardnested_mmx BEFORE PRIVATE
|
||||
-mmmx -mno-sse2 -mno-avx -mno-avx2 -mno-avx512f)
|
||||
|
||||
target_include_directories(hardnested_mmx PRIVATE
|
||||
../../common
|
||||
../../include
|
||||
hardnested)
|
||||
|
||||
set_property(TARGET hardnested_mmx PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
## x86 / SSE2
|
||||
add_library(hardnested_sse2 OBJECT
|
||||
hardnested/hardnested_bf_core.c
|
||||
hardnested/hardnested_bitarray_core.c)
|
||||
|
||||
target_compile_options(hardnested_sse2 BEFORE PRIVATE
|
||||
-mmmx -msse2 -mno-avx -mno-avx2 -mno-avx512f)
|
||||
|
||||
target_include_directories(hardnested_sse2 PRIVATE
|
||||
../../common
|
||||
../../include
|
||||
hardnested)
|
||||
|
||||
set_property(TARGET hardnested_sse2 PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
## x86 / AVX
|
||||
add_library(hardnested_avx OBJECT
|
||||
hardnested/hardnested_bf_core.c
|
||||
hardnested/hardnested_bitarray_core.c)
|
||||
|
||||
target_compile_options(hardnested_avx BEFORE PRIVATE
|
||||
-mmmx -msse2 -mavx -mno-avx2 -mno-avx512f)
|
||||
|
||||
target_include_directories(hardnested_avx PRIVATE
|
||||
../../common
|
||||
../../include
|
||||
hardnested)
|
||||
|
||||
set_property(TARGET hardnested_avx PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
## x86 / AVX2
|
||||
add_library(hardnested_avx2 OBJECT
|
||||
hardnested/hardnested_bf_core.c
|
||||
hardnested/hardnested_bitarray_core.c)
|
||||
|
||||
target_compile_options(hardnested_avx2 BEFORE PRIVATE
|
||||
-mmmx -msse2 -mavx -mavx2 -mno-avx512f)
|
||||
|
||||
target_include_directories(hardnested_avx2 PRIVATE
|
||||
../../common
|
||||
../../include
|
||||
hardnested)
|
||||
|
||||
set_property(TARGET hardnested_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
## x86 / AVX512
|
||||
add_library(hardnested_avx512 OBJECT
|
||||
hardnested/hardnested_bf_core.c
|
||||
hardnested/hardnested_bitarray_core.c)
|
||||
|
||||
target_compile_options(hardnested_avx512 BEFORE PRIVATE
|
||||
-mmmx -msse2 -mavx -mavx2 -mavx512f)
|
||||
|
||||
target_include_directories(hardnested_avx512 PRIVATE
|
||||
../../common
|
||||
../../include
|
||||
hardnested)
|
||||
|
||||
set_property(TARGET hardnested_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set(SIMD_TARGETS
|
||||
$<TARGET_OBJECTS:hardnested_mmx>
|
||||
$<TARGET_OBJECTS:hardnested_sse2>
|
||||
$<TARGET_OBJECTS:hardnested_avx>
|
||||
$<TARGET_OBJECTS:hardnested_avx2>
|
||||
$<TARGET_OBJECTS:hardnested_avx512>)
|
||||
else ()
|
||||
message(STATUS "Not building optimised targets")
|
||||
set(SIMD_TARGETS)
|
||||
endif ()
|
||||
|
||||
add_library(hardnested STATIC
|
||||
$<TARGET_OBJECTS:hardnested_nosimd>
|
||||
${SIMD_TARGETS})
|
18
client/deps/jansson.cmake
Normal file
18
client/deps/jansson.cmake
Normal file
|
@ -0,0 +1,18 @@
|
|||
set_property(SOURCE PROPERTY C_STANDARD 99)
|
||||
add_definitions(-DHAVE_STDINT_H)
|
||||
include_directories(jansson)
|
||||
|
||||
add_library(jansson
|
||||
jansson/dump.c
|
||||
jansson/error.c
|
||||
jansson/hashtable.c
|
||||
jansson/hashtable_seed.c
|
||||
jansson/load.c
|
||||
jansson/memory.c
|
||||
jansson/pack_unpack.c
|
||||
jansson/strbuffer.c
|
||||
jansson/strconv.c
|
||||
jansson/utf.c
|
||||
jansson/path.c
|
||||
jansson/value.c
|
||||
)
|
58
client/deps/lua.cmake
Normal file
58
client/deps/lua.cmake
Normal file
|
@ -0,0 +1,58 @@
|
|||
add_definitions(-DLUA_COMPAT_ALL $(SYSCFLAGS))
|
||||
include_directories(liblua)
|
||||
|
||||
set(SYSCFLAGS "-DLUA_COMPAT_ALL")
|
||||
|
||||
if (UNIX)
|
||||
set(SYSCFLAGS "-DLUA_USE_LINUX")
|
||||
endif (UNIX)
|
||||
|
||||
if (WIN32)
|
||||
set(SYSCFLAGS "-DLUA_USE_LINUX")
|
||||
endif (WIN32)
|
||||
|
||||
if (MINGW)
|
||||
set(SYSCFLAGS "-DLUA_COMPAT_ALL $(SYSCFLAGS)")
|
||||
endif (MINGW)
|
||||
|
||||
if (APPLE)
|
||||
set(SYSCFLAGS "-DLUA_USE_MACOSX")
|
||||
endif (APPLE)
|
||||
|
||||
add_definitions($(SYSCFLAGS))
|
||||
|
||||
add_library(lua
|
||||
liblua/lapi.c
|
||||
liblua/lcode.c
|
||||
liblua/lctype.c
|
||||
liblua/ldebug.c
|
||||
liblua/ldo.c
|
||||
liblua/ldump.c
|
||||
liblua/lfunc.c
|
||||
liblua/lgc.c
|
||||
liblua/llex.c
|
||||
liblua/lmem.c
|
||||
liblua/lobject.c
|
||||
liblua/lopcodes.c
|
||||
liblua/lparser.c
|
||||
liblua/lstate.c
|
||||
liblua/lstring.c
|
||||
liblua/ltable.c
|
||||
liblua/ltm.c
|
||||
liblua/lundump.c
|
||||
liblua/lvm.c
|
||||
liblua/lzio.c
|
||||
liblua/lauxlib.c
|
||||
liblua/lbaselib.c
|
||||
liblua/lbitlib.c
|
||||
liblua/lcorolib.c
|
||||
liblua/ldblib.c
|
||||
liblua/liolib.c
|
||||
liblua/lmathlib.c
|
||||
liblua/loslib.c
|
||||
liblua/lstrlib.c
|
||||
liblua/ltablib.c
|
||||
liblua/loadlib.c
|
||||
liblua/linit.c
|
||||
)
|
||||
|
49
client/deps/mbedtls.cmake
Normal file
49
client/deps/mbedtls.cmake
Normal file
|
@ -0,0 +1,49 @@
|
|||
set_property(SOURCE PROPERTY C_STANDARD 99)
|
||||
add_definitions(-DHAVE_STDINT_H)
|
||||
include_directories(../../common)
|
||||
|
||||
add_library(mbedtls
|
||||
../../common/mbedtls/aes.c
|
||||
../../common/mbedtls/asn1parse.c
|
||||
../../common/mbedtls/asn1write.c
|
||||
../../common/mbedtls/base64.c
|
||||
../../common/mbedtls/bignum.c
|
||||
../../common/mbedtls/ctr_drbg.c
|
||||
../../common/mbedtls/entropy_poll.c
|
||||
../../common/mbedtls/entropy.c
|
||||
../../common/mbedtls/error.c
|
||||
../../common/mbedtls/timing.c
|
||||
../../common/mbedtls/ecp.c
|
||||
../../common/mbedtls/ecp_curves.c
|
||||
../../common/mbedtls/certs.c
|
||||
../../common/mbedtls/camellia.c
|
||||
../../common/mbedtls/blowfish.c
|
||||
../../common/mbedtls/cipher_wrap.c
|
||||
../../common/mbedtls/cipher.c
|
||||
../../common/mbedtls/cmac.c
|
||||
../../common/mbedtls/des.c
|
||||
../../common/mbedtls/ecdsa.c
|
||||
../../common/mbedtls/md.c
|
||||
../../common/mbedtls/md_wrap.c
|
||||
../../common/mbedtls/md5.c
|
||||
../../common/mbedtls/oid.c
|
||||
../../common/mbedtls/pem.c
|
||||
../../common/mbedtls/arc4.c
|
||||
../../common/mbedtls/pk.c
|
||||
../../common/mbedtls/pk_wrap.c
|
||||
../../common/mbedtls/pkwrite.c
|
||||
../../common/mbedtls/pkcs5.c
|
||||
../../common/mbedtls/pkcs12.c
|
||||
../../common/mbedtls/pkparse.c
|
||||
../../common/mbedtls/platform.c
|
||||
../../common/mbedtls/platform_util.c
|
||||
../../common/mbedtls/rsa.c
|
||||
../../common/mbedtls/rsa_internal.c
|
||||
../../common/mbedtls/sha1.c
|
||||
../../common/mbedtls/sha256.c
|
||||
../../common/mbedtls/sha512.c
|
||||
../../common/mbedtls/threading.c
|
||||
../../common/mbedtls/x509.c
|
||||
../../common/mbedtls/x509_crl.c
|
||||
../../common/mbedtls/x509_crt.c
|
||||
)
|
15
client/deps/reveng.cmake
Normal file
15
client/deps/reveng.cmake
Normal file
|
@ -0,0 +1,15 @@
|
|||
set_property(SOURCE PROPERTY C_STANDARD 99)
|
||||
add_definitions(-DPRESETS)
|
||||
include_directories(reveng)
|
||||
include_directories(.)
|
||||
|
||||
add_library(reveng
|
||||
reveng/bmpbit.c
|
||||
reveng/cli.c
|
||||
reveng/getopt.c
|
||||
reveng/model.c
|
||||
reveng/poly.c
|
||||
reveng/preset.c
|
||||
reveng/reveng.c
|
||||
)
|
||||
|
10
client/deps/tinycbor.cmake
Normal file
10
client/deps/tinycbor.cmake
Normal file
|
@ -0,0 +1,10 @@
|
|||
add_library(tinycbor
|
||||
tinycbor/cborencoder.c
|
||||
tinycbor/cborencoder_close_container_checked.c
|
||||
tinycbor/cborerrorstrings.c
|
||||
tinycbor/cborparser.c
|
||||
tinycbor/cborparser_dup_string.c
|
||||
tinycbor/cborpretty.c
|
||||
tinycbor/cbortojson.c
|
||||
tinycbor/cborvalidation.c
|
||||
)
|
15
client/deps/zlib.cmake
Normal file
15
client/deps/zlib.cmake
Normal file
|
@ -0,0 +1,15 @@
|
|||
set_property(SOURCE PROPERTY C_STANDARD 99)
|
||||
add_definitions(-D_ISOC99_SOURCE -DZ_SOLO -DNO_GZIP -DZLIB_PM3_TUNED)
|
||||
include_directories(../../common/zlib)
|
||||
|
||||
add_library(z
|
||||
../../common/zlib/deflate.c
|
||||
../../common/zlib/adler32.c
|
||||
../../common/zlib/trees.c
|
||||
../../common/zlib/zutil.c
|
||||
../../common/zlib/inflate.c
|
||||
../../common/zlib/inffast.c
|
||||
../../common/zlib/inftrees.c
|
||||
)
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue