Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Windows build attempt #168

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
138 changes: 138 additions & 0 deletions .azure-pipelines/azure-pipelines-win.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 45 additions & 0 deletions .ci_support/win_64_.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
arpack:
- '3.7'
c_compiler:
- vs2017
channel_sources:
- conda-forge
channel_targets:
- conda-forge main
curl:
- '7'
cxx_compiler:
- vs2017
fortran_compiler:
- flang
fortran_compiler_version:
- '5'
gmp:
- '6'
libgit2:
- '1.3'
libssh2:
- '1'
mpfr:
- '4'
pcre2:
- '10.37'
perl:
- 5.32.1
pin_run_as_build:
arpack:
max_pin: x.x.x
curl:
max_pin: x
gmp:
max_pin: x
mpfr:
max_pin: x
zlib:
max_pin: x.x
suitesparse:
- '5'
target_platform:
- win-64
zlib:
- '1.2'
80 changes: 80 additions & 0 deletions .scripts/create_conda_build_artifacts.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions azure-pipelines.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions recipe/bld.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
copy "%RECIPE_DIR%\build.sh" .
FOR /F "delims=" %%i IN ('cygpath.exe -u "%LIBRARY_PREFIX%"') DO set "LIBRARY_PREFIX=%%i"
SET PREFIXW=%PREFIX%
FOR /F "delims=" %%i IN ('cygpath.exe -u "%PREFIX%"') DO set "PREFIX=%%i"
FOR /F "delims=" %%i IN ('cygpath.exe -u "%PYTHON%"') DO set "PYTHON=%%i"
FOR /F "delims=" %%i IN ('cygpath.exe -u "%RECIPE_DIR%"') DO set "RECIPE_DIR=%%i"
FOR /F "delims=" %%i IN ('cygpath.exe -u "%SP_DIR%"') DO set "SP_DIR=%%i"
FOR /F "delims=" %%i IN ('cygpath.exe -u "%SRC_DIR%"') DO set "SRC_DIR=%%i"
FOR /F "delims=" %%i IN ('cygpath.exe -u "%STDLIB_DIR%"') DO set "STDLIB_DIR=%%i"
set MSYSTEM=MINGW%ARCH%
set MSYS2_PATH_TYPE=inherit
set CHERE_INVOKING=1
bash -lc ./build.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting approach... it doesn't seem it is cooperating?

I would think rewriting build.sh here would be the way to go, but I have no idea how windows works. One thing I would try to start off would be to just copy the binaries from upstream and see if that works with a simple bld.bat to copy them to PREFIX. Then I would try to actually build...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thr Julia build process essentially needs bash on Windows. It usually uses Cygwin and has been used with msys2 in the past. The current issue is locating Python on the path.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually the problem seems different now. I wonder why we do not see any evidence of building.

if %errorlevel% neq 0 exit /b %errorlevel%
exit /b 0
2 changes: 2 additions & 0 deletions recipe/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ if [[ "${target_platform}" == osx-* ]]; then
export EXTRA_MAKEFLAGS="USE_SYSTEM_LIBGIT2=0 USE_SYSTEM_MBEDTLS=0"
elif [[ "${target_platform}" == linux-* ]]; then
export EXTRA_MAKEFLAGS="USE_SYSTEM_LIBGIT2=1 USE_SYSTEM_MBEDTLS=1"
elif [[ "${target_platform}" == win-* ]]; then
export EXTRA_MAKEFLAGS="USE_SYSTEM_LIBGIT2=1 USE_SYSTEM_MBEDTLS=0 USE_SYSTEM_P7ZIP=0 USE_SYSTEM_NGHTTP2=0 USE_SYSTEM_GMP=0"
fi
# See the following link for how official Julia sets JULIA_CPU_TARGET
# https://github.com/JuliaCI/julia-buildbot/blob/ba448c690935fe53d2b1fc5ce22bc60fd1e251a7/master/inventory.py
Expand Down
30 changes: 18 additions & 12 deletions recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,45 +22,51 @@ source:
## see: https://github.com/JuliaLang/Downloads.jl/issues/172
- patches/0001-upgrading-downloads-v1.7.1.patch

## just do win until we get the recipe to work
build:
skip: true # [win]
number: 0
skip: true # [not win]
features:

requirements:
build:
- make
- perl
- python 3
- {{ compiler('fortran') }}
- {{ compiler('c') }}
- {{ compiler('cxx') }}
host:
- openblas-ilp64
- python 3
- m2-bash # [win]
- m2-base # [win]
- openblas-ilp64 # [not win]
- openblas # [win]
- patchelf # [linux]
- openlibm
- gmp # [not win]
- openlibm <0.8.0
- gmp
- mpfr
- curl
- libgit2 # [not osx]
- libssh2
- libosxunwind # [osx]
- libunwind # [linux]
- mbedtls # [not osx]
- mbedtls # [not (osx or win)]
- arpack
- suitesparse
- pcre2
- git
- libutf8proc
- libnghttp2
- libnghttp2 # [not win]
- zlib
- p7zip
- p7zip # [not win]

run:
- openblas-ilp64
- openblas-ilp64 # [not win]
- openblas # [win]
- libosxunwind # [osx]
- libunwind # [linux]
- gmp
- gmp # [not win]
- mpfr
- openlibm <0.8.0
- arpack
Expand All @@ -69,12 +75,12 @@ requirements:
- curl
- libgit2 # [not osx]
- libssh2
- mbedtls # [not osx]
- mbedtls # [not (osx or win)]
- git
- libutf8proc
- libnghttp2
- libnghttp2 # [not win]
- zlib
- p7zip
- p7zip # [not win]

test:
commands:
Expand Down