Skip to content

Commit

Permalink
WIP: add scrypt-windows as submodule
Browse files Browse the repository at this point in the history
Try the simple method first: we know that the code from
barrysteyn/scrypt-windows compiles. So add it as submodule and convert
the information from binding.gyp to a CMakeList.txt file that is only
added to the Windows build.
  • Loading branch information
stefanb2 committed Nov 7, 2023
1 parent ecce0a6 commit 5d51969
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 37 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ jobs:
# NOTE: execute *AFTER* dependency installation to ensure that it uses a git checkout!
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Configure
run: |
Expand Down
37 changes: 8 additions & 29 deletions .github/workflows/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,37 +11,20 @@ jobs:

strategy:
matrix:
qt: [5.15.*, 6.6.*]
# temporarily disabled
#qt: [5.15.*, 6.6.*]
qt: [5.15.*]
fail-fast: false

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Check out scrypt
uses: actions/checkout@master
uses: actions/checkout@v4
with:
repository: barrysteyn/scrypt-windows
path: scrypt-windows
submodules: true

- name: Add msbuild to PATH
uses: microsoft/[email protected]

- name: Install node
uses: actions/setup-node@master

- name: Install node-gyp
shell: powershell
run: |
npm install --global node-gyp@latest
- name: Build scrypt-windows
working-directory: scrypt-windows
run: |
node-gyp configure
node-gyp build
node-gyp install
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
Expand All @@ -52,13 +35,9 @@ jobs:
setup-python: false

- name: Configure
env:
CXXFLAGS: -I${{ github.workspace }}/scrypt-windows/scrypt-1.1.6/lib
run: >
cmake -B ${{ runner.temp }}/build
"-DCMAKE_LIBRARY_PATH=${{ github.workspace }}/scrypt-windows/build/Release"
.
run: |
cmake -B ${{ runner.temp }}/build .
- name: Build
run: |
cmake --build ${{ runner.temp }}/build
cmake --build ${{ runner.temp }}/build --verbose
5 changes: 3 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ on:
- cron: '16 3 10 * *'

jobs:
matrix-linux:
uses: ./.github/workflows/build-linux.yml
# temporary disabled
#matrix-linux:
# uses: ./.github/workflows/build-linux.yml

matrix-windows:
uses: ./.github/workflows/build-windows.yml
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "src/3rdparty/scrypt/scrypt-windows"]
path = src/3rdparty/scrypt/scrypt-windows
url = [email protected]:barrysteyn/scrypt-windows.git
29 changes: 24 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,32 @@ if(UNIX)
endif()

if(WIN32)
find_library(SCRYPT_LIBRARY NAMES scrypt scrypt_lib)
target_link_options(${TARGET} BEFORE PRIVATE
/LTCG /INCREMENTAL:NO
/NODEFAULTLIB:libcmt.lib
set(SCRYPT_WINDOWS_LIB scrypt-windows)
set(SCRYPT_WINDOWS_DIR src/3rdparty/scrypt/scrypt-windows)
set(SCRYPT_SOURCE_DIR ${SCRYPT_WINDOWS_DIR}/scrypt-1.1.6)
add_library(${SCRYPT_WINDOWS_LIB} STATIC
${SCRYPT_SOURCE_DIR}/lib/crypto/crypto_scrypt-sse.c
${SCRYPT_SOURCE_DIR}/lib/crypto/sha256.c
${SCRYPT_WINDOWS_DIR}/win/mman.c
)
set_target_properties(${SCRYPT_WINDOWS_LIB} PROPERTIES
AUTOMOC OFF
AUTOUIC OFF
LINKER_LANGUAGE CXX
)

target_include_directories(${SCRYPT_WINDOWS_LIB} PRIVATE
${SCRYPT_SOURCE_DIR}
${SCRYPT_SOURCE_DIR}/lib/crypto
${SCRYPT_SOURCE_DIR}/lib/scryptenc
${SCRYPT_SOURCE_DIR}/lib/util
)
target_include_directories(${TARGET} PRIVATE
${SCRYPT_SOURCE_DIR}/lib
)

target_link_libraries(${TARGET} PRIVATE
${SCRYPT_LIBRARY}
${SCRYPT_WINDOWS_LIB}
ws2_32
)
endif()
Expand Down
2 changes: 2 additions & 0 deletions src/3rdparty/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
if(WIN32)
#add_subdirectory(scrypt)

target_sources(${TARGET} PRIVATE
InputBuilder.cpp
InputSimulator.cpp
Expand Down
18 changes: 18 additions & 0 deletions src/3rdparty/scrypt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
set(SCRYPT_WINDOWS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/scrypt-windows)
set(SCRYPT_SOURCE_DIR ${SCRYPT_WINDOWS_DIR}/scrypt-1.1.6)

target_sources(${SCRYPT_WINDOWS_LIB} PRIVATE
${SCRYPT_SOURCE_DIR}/lib/crypto/crypto_scrypt-sse.c
${SCRYPT_SOURCE_DIR}/lib/crypto/sha256.c
${SCRYPT_WINDOWS_DIR}/win/mman.c
)
target_include_directories(${SCRYPT_WINDOWS_LIB} PRIVATE
${SCRYPT_SOURCE_DIR}
${SCRYPT_SOURCE_DIR}/lib/crypto
${SCRYPT_SOURCE_DIR}/lib/scryptenc
${SCRYPT_SOURCE_DIR}/lib/util
)

target_include_directories(${TARGET} PRIVATE
${SCRYPT_SOURCE_DIR}/lib
)
1 change: 1 addition & 0 deletions src/3rdparty/scrypt/scrypt-windows
Submodule scrypt-windows added at 043189

0 comments on commit 5d51969

Please sign in to comment.