1212 types :
1313 - created
1414
15+ env :
16+ THIRD_PARTY_NOTICES : |
17+ THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
18+
19+ This distribution includes third‑party software components subject to the licenses and notices listed below.
20+ “The contents of the NOTICE file are for informational purposes only and do not modify the License.”
21+ (Excerpted from the Apache License 2.0 notice guidance.)
22+
23+ ----------------------------------------------------------------------
24+ Component: PThreads4W - POSIX threads for Windows
25+ License: Apache-2.0
26+ Copyright: (c) 1998 John E. Bossom, 1999-2018 Pthreads4w contributors
27+ Source files: https://github.com/jwinarske/pthreads4w
28+ Attribution: This package includes threadsVC3.dll object code thanks to the Pthreads4w contributors.
29+ Full license text: see LICENSES/Apache-2.0.txt
30+
31+ This product includes software developed through the colaborative
32+ effort of several individuals, each of whom is listed in the file
33+ NOTICES/CONTRIBUTORS_pthreads4w included with this software.
34+
1535jobs :
1636 test :
1737 name : Run tests
@@ -23,14 +43,14 @@ jobs:
2343 # Only os: windows-2022 has Visual Studio 2022 (v17) installed with toolset v143, which is required.
2444 # configuration: "Release" or "Debug", platform: "x86" or "x64". See solution Configuration Manager.
2545 { os: windows-2022, configuration: "Debug", platform: "x64" },
26- { os: windows-2025, configuration: "Release ", platform: "x64" }
46+ { os: windows-2025, configuration: "ReleaseParallel ", platform: "x64" }
2747 ]
2848 steps :
2949 - name : Set up environment variables
3050 shell : cmd
3151 # For cmd, dont use double quotes in the echo command and dont put a space before >> %GITHUB_ENV%
3252 run : |
33- if "${{ matrix.platform }}"=="x64" echo output_dir=x64\ ${{ matrix.configuration }}>> %GITHUB_ENV%
53+ if "${{ matrix.platform }}"=="x64" echo output_dir=x64/ ${{ matrix.configuration }}>> %GITHUB_ENV%
3454 if "${{ matrix.platform }}"=="x86" echo output_dir=${{ matrix.configuration }}>> %GITHUB_ENV%
3555 echo package_suffix=${{ matrix.os}}-msvs-v17-${{ matrix.configuration }}-${{ matrix.platform }}>> %GITHUB_ENV%
3656 - name : Check environment variables
@@ -40,58 +60,84 @@ jobs:
4060 echo Package suffix - '${{ env.package_suffix }}'
4161 if "${{ env.output_dir }}"=="" echo ERROR - No output_dir set, possibly unsupported platform '${{ matrix.platform }}'. Expecting x64 or x86. && exit 1
4262 - name : Checkout source
43- uses : actions/checkout@v4
63+ uses : actions/checkout@v5
4464 with :
4565 path : ${{ github.event.repository.name }}
4666 - name : Checkout coinbrew
47- uses : actions/checkout@v4
67+ uses : actions/checkout@v5
4868 with :
4969 repository : coin-or/coinbrew
5070 path : coinbrew
5171 - name : Set up msbuild
5272 uses : microsoft/setup-msbuild@v2
73+ with :
74+ msbuild-architecture : x64
5375 - name : Set up msys for coinbrew
5476 uses : msys2/setup-msys2@v2
5577 with :
56- update : true
78+ update : false
5779 install : >-
58- base-devel
5980 git
6081 zip
82+ rsync
6183 path-type : inherit
6284 msystem : mingw64
6385 - name : Fetch project
86+ shell : msys2 {0}
6487 run : |
6588 ADD_ARGS=()
6689 ADD_ARGS+=( --skip='ThirdParty/Metis ThirdParty/Mumps ThirdParty/Blas ThirdParty/Lapack' )
6790 ./coinbrew/coinbrew fetch ${{ github.event.repository.name }} --skip-update "${ADD_ARGS[@]}"
6891 echo "##################################################"
6992 echo "### Extracting Netlib and Miplib3 if available"
70- if [ -d "./Data/Netlib/" ]; then gunzip ./Data/Netlib/*.gz; fi
71- if [ -d "./Data/Miplib3/" ]; then gunzip ./Data/Miplib3/*.gz; fi
93+ test -d "./Data/Netlib/" && gunzip ./Data/Netlib/*.gz
94+ test -d "./Data/Miplib3/" && gunzip ./Data/Miplib3/*.gz
7295 echo "##################################################"
73- shell : msys2 {0}
74- - name : Build project
96+ - name : setup vcpkg
97+ shell : cmd
98+ run : |
99+ vcpkg new --application
100+ vcpkg add port pthreads
101+ vcpkg integrate install
102+ - name : Compile project
103+ shell : cmd
104+ run : |
105+ msbuild "${{ github.event.repository.name }}/${{ github.event.repository.name }}/MSVisualStudio/v17/${{ github.event.repository.name }}.sln" -t:ClCompile -p:VcpkgEnableManifest=true -p:Configuration=${{ matrix.configuration }} -p:Platform=${{ matrix.platform }} -m
106+ - name : Make pthread.lib link to pthreadVC3.lib
107+ # msbuild tries to link to pthread.lib, but the pthreads4w lib names have suffixes
108+ shell : cmd
109+ run : |
110+ mklink "vcpkg_installed/x64-windows/x64-windows/lib/pthread.lib" pthreadVC3.lib
111+ - name : Link project
75112 shell : cmd
76113 run : |
77- msbuild ${{ github.event.repository.name }}\ ${{ github.event.repository.name }}\ MSVisualStudio\ v17\ ${{ github.event.repository.name }}.sln /p: Configuration=${{ matrix.configuration }} / p:Platform=${{ matrix.platform }} / m
114+ msbuild " ${{ github.event.repository.name }}/ ${{ github.event.repository.name }}/ MSVisualStudio/ v17/ ${{ github.event.repository.name }}.sln" -p:VcpkgEnableManifest=true -p: Configuration=${{ matrix.configuration }} - p:Platform=${{ matrix.platform }} - m
78115 - name : Test project
79116 shell : cmd
80117 run : |
81- .\${{ github.event.repository.name }}\${{ github.event.repository.name }}\MSVisualStudio\v17\${{ github.event.repository.name }}Test.cmd .\${{ github.event.repository.name }}\${{ github.event.repository.name }}\MSVisualStudio\v17\${{ env.output_dir }} .\Data\Sample .\Data\Netlib .\Data\Miplib3
118+ "./${{ github.event.repository.name }}/${{ github.event.repository.name }}/MSVisualStudio/v17/${{ github.event.repository.name }}Test.cmd" "./${{ github.event.repository.name }}/${{ github.event.repository.name }}/MSVisualStudio/v17/${{ env.output_dir }}" "./Data/Sample" "./Data/Netlib" "./Data/Miplib3"
119+ - name : Put together legalese for third party components
120+ # the content of file NOTICE from pthreads4w goes into ThirdPartyNotices.txt, but it references CONTRIBUTORS
121+ shell : msys2 {0}
122+ run : |
123+ echo "${{ env.THIRD_PARTY_NOTICES }}" > ThirdPartyNotices.txt
124+ mkdir LICENSES
125+ wget -o LICENSES/Apache-2.0.txt https://github.com/jwinarske/pthreads4w/raw/refs/heads/cmake/LICENSE
126+ mkdir NOTICES
127+ wget -o NOTICES/CONTRIBUTORS_pthreads4w https://github.com/jwinarske/pthreads4w/raw/refs/heads/cmake/CONTRIBUTORS
82128 - name : Install project
83- shell : cmd
129+ shell : msys2 {0}
84130 run : |
85131 mkdir dist
86- copy ${{ github.event.repository.name }}\ README. * dist\.
87- copy ${{ github.event.repository.name }}\AUTHORS.* dist\.
88- copy ${{ github.event.repository.name }}\LICENSE.* dist\.
89- mkdir dist\ bin
90- copy ${{ github.event.repository.name }}\${{ github.event.repository.name }}\MSVisualStudio\v17\${{ env.output_dir }}\*.exe dist\ bin\.
91- mkdir dist\ share
92- if exist .\ Data\ Sample xcopy .\ Data\ Sample dist\ share\ coin-or-sample /i
93- if exist .\ Data\ Netlib xcopy .\ Data\Netlib dist\ share\ coin-or-netlib /i
94- if exist .\ Data\ Miplib3 xcopy .\ Data\Miplib3 dist\ share\ coin-or-miplib3 /i
132+ cp " ${{ github.event.repository.name }}"/{ README,AUTHORS,LICENSE} * dist
133+ cp -r ThirdPartyNotices.txt LICENSES NOTICES dist
134+ mkdir dist/bin
135+ cp "${{ github.event.repository.name }}/${{ github.event.repository.name }}/MSVisualStudio/v17/${{ env.output_dir }}"/*.exe dist/ bin
136+ cp vcpkg_installed/x64-windows/x64-windows/bin/pthreadVC3.dll dist/ bin
137+ mkdir dist/ share
138+ test -d "./ Data/ Sample" && rsync -av ./ Data/ Sample dist/ share/ coin-or-sample --exclude='.git*'
139+ test -d "./ Data/ Netlib" && rsync -av ./ Data/Sample dist/ share/ coin-or-netlib --exclude='.git*'
140+ test -d "./ Data/ Miplib3" && rsync -av ./ Data/Sample dist/ share/ coin-or-miplib3 --exclude='.git*'
95141 - name : Upload artifact
96142 uses : actions/upload-artifact@v4
97143 with :
0 commit comments