mirror of https://github.com/hashcat/hashcat.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
237 lines
5.6 KiB
237 lines
5.6 KiB
project(
|
|
'hashcat',
|
|
'c',
|
|
'cpp',
|
|
version: '6.3.1',
|
|
default_options: ['c_std=gnu11', 'cpp_std=c++11', 'warning_level=1'],
|
|
meson_version: '>=0.49.0',
|
|
)
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
if cc.links('#include <iconv.h>\nint main(){iconv_open("", "");}')
|
|
iconv_dep = dependency('', required: false)
|
|
else
|
|
iconv_dep = cc.find_library('iconv')
|
|
endif
|
|
|
|
threads_dep = dependency('threads')
|
|
|
|
deps = [
|
|
iconv_dep,
|
|
threads_dep,
|
|
dependency('OpenCL-Headers'),
|
|
dependency('minizip'),
|
|
dependency('libxxhash'),
|
|
dependency('zlib'),
|
|
]
|
|
|
|
if host_machine.system() != 'windows'
|
|
if meson.version().version_compare('>=0.62')
|
|
deps += dependency('dl')
|
|
else
|
|
deps += cc.find_library('dl')
|
|
endif
|
|
endif
|
|
|
|
if host_machine.system() == 'windows'
|
|
deps += cc.find_library('psapi')
|
|
deps += cc.find_library('ws2_32')
|
|
if meson.is_cross_build()
|
|
deps += cc.find_library('ssp')
|
|
endif
|
|
elif host_machine.system() == 'darwin'
|
|
deps += dependency('appleframeworks', modules: ['CoreFoundation', 'Foundation', 'IOKit', 'Metal'])
|
|
else
|
|
deps += cc.find_library('m')
|
|
endif
|
|
|
|
lzma = static_library(
|
|
'lzma',
|
|
'deps/LZMA-SDK/C/7zAlloc.c',
|
|
'deps/LZMA-SDK/C/7zArcIn.c',
|
|
'deps/LZMA-SDK/C/7zBuf.c',
|
|
'deps/LZMA-SDK/C/7zBuf2.c',
|
|
'deps/LZMA-SDK/C/7zCrc.c',
|
|
'deps/LZMA-SDK/C/7zCrcOpt.c',
|
|
'deps/LZMA-SDK/C/7zDec.c',
|
|
'deps/LZMA-SDK/C/7zFile.c',
|
|
'deps/LZMA-SDK/C/7zStream.c',
|
|
'deps/LZMA-SDK/C/Aes.c',
|
|
'deps/LZMA-SDK/C/AesOpt.c',
|
|
'deps/LZMA-SDK/C/Alloc.c',
|
|
'deps/LZMA-SDK/C/Bcj2.c',
|
|
'deps/LZMA-SDK/C/Bcj2Enc.c',
|
|
'deps/LZMA-SDK/C/Bra.c',
|
|
'deps/LZMA-SDK/C/Bra86.c',
|
|
'deps/LZMA-SDK/C/BraIA64.c',
|
|
'deps/LZMA-SDK/C/CpuArch.c',
|
|
'deps/LZMA-SDK/C/Delta.c',
|
|
'deps/LZMA-SDK/C/DllSecur.c',
|
|
'deps/LZMA-SDK/C/LzFind.c',
|
|
'deps/LZMA-SDK/C/LzFindMt.c',
|
|
'deps/LZMA-SDK/C/Lzma2Dec.c',
|
|
'deps/LZMA-SDK/C/Lzma2DecMt.c',
|
|
'deps/LZMA-SDK/C/Lzma2Enc.c',
|
|
'deps/LZMA-SDK/C/Lzma86Dec.c',
|
|
'deps/LZMA-SDK/C/Lzma86Enc.c',
|
|
'deps/LZMA-SDK/C/LzmaDec.c',
|
|
'deps/LZMA-SDK/C/LzmaEnc.c',
|
|
'deps/LZMA-SDK/C/LzmaLib.c',
|
|
'deps/LZMA-SDK/C/MtCoder.c',
|
|
'deps/LZMA-SDK/C/MtDec.c',
|
|
'deps/LZMA-SDK/C/Ppmd7.c',
|
|
'deps/LZMA-SDK/C/Ppmd7Dec.c',
|
|
'deps/LZMA-SDK/C/Ppmd7Enc.c',
|
|
'deps/LZMA-SDK/C/Sha256.c',
|
|
'deps/LZMA-SDK/C/Sha256Opt.c',
|
|
'deps/LZMA-SDK/C/Sort.c',
|
|
'deps/LZMA-SDK/C/Threads.c',
|
|
'deps/LZMA-SDK/C/Xz.c',
|
|
'deps/LZMA-SDK/C/XzCrc64.c',
|
|
'deps/LZMA-SDK/C/XzCrc64Opt.c',
|
|
'deps/LZMA-SDK/C/XzDec.c',
|
|
'deps/LZMA-SDK/C/XzEnc.c',
|
|
'deps/LZMA-SDK/C/XzIn.c',
|
|
dependencies: threads_dep,
|
|
)
|
|
|
|
lzma_inc = include_directories('deps/LZMA-SDK/C')
|
|
lzma_dep = declare_dependency(
|
|
include_directories: lzma_inc,
|
|
link_with: lzma,
|
|
)
|
|
|
|
deps += lzma_dep
|
|
|
|
if get_option('unrar') and host_machine.system() != 'cygwin'
|
|
unrar = static_library(
|
|
'unrar',
|
|
'deps/unrar/archive.cpp',
|
|
'deps/unrar/arcread.cpp',
|
|
'deps/unrar/blake2s.cpp',
|
|
'deps/unrar/cmddata.cpp',
|
|
'deps/unrar/consio.cpp',
|
|
'deps/unrar/crc.cpp',
|
|
'deps/unrar/crypt.cpp',
|
|
'deps/unrar/encname.cpp',
|
|
'deps/unrar/errhnd.cpp',
|
|
'deps/unrar/extinfo.cpp',
|
|
'deps/unrar/extract.cpp',
|
|
'deps/unrar/filcreat.cpp',
|
|
'deps/unrar/file.cpp',
|
|
'deps/unrar/filefn.cpp',
|
|
'deps/unrar/filestr.cpp',
|
|
'deps/unrar/find.cpp',
|
|
'deps/unrar/getbits.cpp',
|
|
'deps/unrar/global.cpp',
|
|
'deps/unrar/hash.cpp',
|
|
'deps/unrar/hc_decompress_rar.cpp',
|
|
'deps/unrar/headers.cpp',
|
|
'deps/unrar/isnt.cpp',
|
|
'deps/unrar/list.cpp',
|
|
'deps/unrar/match.cpp',
|
|
'deps/unrar/options.cpp',
|
|
'deps/unrar/pathfn.cpp',
|
|
'deps/unrar/qopen.cpp',
|
|
'deps/unrar/rarvm.cpp',
|
|
'deps/unrar/rawread.cpp',
|
|
'deps/unrar/rdwrfn.cpp',
|
|
'deps/unrar/recvol.cpp',
|
|
'deps/unrar/resource.cpp',
|
|
'deps/unrar/rijndael.cpp',
|
|
'deps/unrar/rs.cpp',
|
|
'deps/unrar/rs16.cpp',
|
|
'deps/unrar/scantree.cpp',
|
|
'deps/unrar/secpassword.cpp',
|
|
'deps/unrar/sha1.cpp',
|
|
'deps/unrar/sha256.cpp',
|
|
'deps/unrar/smallfn.cpp',
|
|
'deps/unrar/strfn.cpp',
|
|
'deps/unrar/strlist.cpp',
|
|
'deps/unrar/system.cpp',
|
|
'deps/unrar/threadpool.cpp',
|
|
'deps/unrar/timefn.cpp',
|
|
'deps/unrar/ui.cpp',
|
|
'deps/unrar/unicode.cpp',
|
|
'deps/unrar/unpack.cpp',
|
|
'deps/unrar/volume.cpp',
|
|
)
|
|
|
|
unrar_inc = include_directories('deps/unrar')
|
|
unrar_dep = declare_dependency(
|
|
include_directories: unrar_inc,
|
|
link_with: unrar,
|
|
)
|
|
|
|
deps += unrar_dep
|
|
if host_machine.system() == 'windows'
|
|
deps += cc.find_library('powrprof')
|
|
deps += cc.find_library('wbemuuid')
|
|
endif
|
|
else
|
|
unrar_dep = dependency('', required: false)
|
|
endif
|
|
|
|
incdirs = include_directories('include', 'OpenCL')
|
|
|
|
subdir('src')
|
|
subdir('modules')
|
|
|
|
install_data(
|
|
'hashcat.hcstat2',
|
|
install_dir: get_option('libdir') / meson.project_name(),
|
|
)
|
|
|
|
install_subdir(
|
|
'OpenCL',
|
|
install_dir: get_option('libdir') / meson.project_name(),
|
|
)
|
|
|
|
install_subdir(
|
|
'tunings',
|
|
install_dir: get_option('libdir') / meson.project_name(),
|
|
)
|
|
|
|
install_subdir(
|
|
'charsets',
|
|
install_dir: get_option('datadir') / 'doc' / meson.project_name(),
|
|
)
|
|
|
|
install_subdir(
|
|
'docs',
|
|
install_dir: get_option('datadir') / 'doc' / meson.project_name(),
|
|
)
|
|
|
|
install_subdir(
|
|
'layouts',
|
|
install_dir: get_option('datadir') / 'doc' / meson.project_name(),
|
|
)
|
|
|
|
install_subdir(
|
|
'masks',
|
|
install_dir: get_option('datadir') / 'doc' / meson.project_name(),
|
|
)
|
|
|
|
install_subdir(
|
|
'rules',
|
|
install_dir: get_option('datadir') / 'doc' / meson.project_name(),
|
|
)
|
|
|
|
install_data(
|
|
'example0.sh',
|
|
'example400.sh',
|
|
'example500.sh',
|
|
'example.dict',
|
|
install_dir: get_option('datadir') / 'doc' / meson.project_name(),
|
|
)
|
|
|
|
executable(
|
|
'hashcat',
|
|
'src/main.c',
|
|
c_args: ['-DCOMPTIME=0', '-DVERSION_TAG="@0@"'.format(meson.project_version())],
|
|
dependencies: libhashcat_dep,
|
|
pie: true,
|
|
install: true,
|
|
)
|