Skip to content

Commit 29d6153

Browse files
committed
Add PThreads4W to the win-64 msvs-compiled binary package
1 parent 47f5d96 commit 29d6153

File tree

2 files changed

+70
-24
lines changed

2 files changed

+70
-24
lines changed

.github/workflows/windows-msvs-ci.yml

Lines changed: 68 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,26 @@ on:
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+
1535
jobs:
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:

Cbc/src/config_cbc_default.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/***************************************************************************/
66

77
/* Version number of project */
8-
#define CBC_VERSION "2.10"
8+
#define CBC_VERSION "2.10.12"
99

1010
/* Major Version number of project */
1111
#define CBC_VERSION_MAJOR 2
@@ -14,7 +14,7 @@
1414
#define CBC_VERSION_MINOR 10
1515

1616
/* Release Version number of project */
17-
#define CBC_VERSION_RELEASE 9999
17+
#define CBC_VERSION_RELEASE 12
1818

1919
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
2020
*/

0 commit comments

Comments
 (0)