Merge pull request #39 from zmughal/perl-appveyor
Enable building and packaging Perl bindings on AppVeyor based Windows CI
This commit is contained in:
+51
-1
@@ -10,12 +10,14 @@ environment:
|
||||
DEPLOY_CORE: 1
|
||||
DEPLOY_PYTHON_BINDINGS: 1
|
||||
DEPLOY_JAVA_BINDINGS: 1
|
||||
DEPLOY_PERL_BINDINGS: 1
|
||||
- MBITS: 64
|
||||
PYTHON_VERSION: 37
|
||||
MSVC_VERSION: 15
|
||||
DEPLOY_CORE: 1
|
||||
DEPLOY_PYTHON_BINDINGS: 1
|
||||
DEPLOY_JAVA_BINDINGS: 1
|
||||
DEPLOY_PERL_BINDINGS: 1
|
||||
|
||||
- MBITS: 32
|
||||
PYTHON_VERSION: 37
|
||||
@@ -43,13 +45,31 @@ install:
|
||||
# Install SWIG by Choco
|
||||
choco install -y --no-progress swig --version 4.0.1
|
||||
choco install -y --no-progress openjdk
|
||||
|
||||
# Install Strawberry Perl and put before any other Perls in %PATH%
|
||||
if ($env:MBITS -eq "32") {
|
||||
choco install -y --no-progress --forcex86 strawberryperl
|
||||
} elseif ($env:MBITS -eq "64") {
|
||||
choco install -y --no-progress strawberryperl
|
||||
} else {
|
||||
echo "No architecture set. Build will be canceled."
|
||||
}
|
||||
$Env:PATH="C:\strawberry\perl\bin;C:\strawberry\perl\site\bin;C:\strawberry\c\bin;$Env:PATH"
|
||||
$Env:PERL_VERSION=$(perl -e 'print $^V')
|
||||
|
||||
before_build:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- cmake -G "%CMAKE_GENERATOR%" ../ -DBUILD_BINDINGS_PYTHON=%DEPLOY_PYTHON_BINDINGS% -DPYTHON_LIBRARY="%PYTHON_PATH%/libs/python%PYTHON_VERSION%.lib" -DBUILD_BINDINGS_JAVA=%DEPLOY_JAVA_BINDINGS%
|
||||
- cd ../
|
||||
- ps: |
|
||||
if ($Env:DEPLOY_PERL_BINDINGS -eq "1") {
|
||||
mkdir build-perl
|
||||
cd build-perl
|
||||
# Need to use Unix Makefiles because Strawberry Perl is a MinGW environment
|
||||
cmake -G "Unix Makefiles" ../ -DBUILD_BINDINGS_PERL=$Env:DEPLOY_PERL_BINDINGS
|
||||
if ($LastExitCode -ne 0) { throw "Perl bindings: cmake failed with exit code $LastExitCode" }
|
||||
cd ../
|
||||
}
|
||||
- ps: $env:CORE_VERSION = Get-Content -Path ./version.txt
|
||||
- ps: $env:UNDERSCORED_CORE_VERSION = $env:CORE_VERSION.Replace(".", "_")
|
||||
- ps: echo "Core version is $env:CORE_VERSION"
|
||||
@@ -63,15 +83,24 @@ build_script:
|
||||
- cd build
|
||||
- msbuild /p:configuration=Release /v:m ALL_BUILD.vcxproj
|
||||
- cd ../
|
||||
- ps: |
|
||||
if ($Env:DEPLOY_PERL_BINDINGS -eq "1") {
|
||||
cd build-perl
|
||||
gmake
|
||||
if ($LastExitCode -ne 0) { throw "Perl bindings: gmake failed with exit code $LastExitCode" }
|
||||
cd ../
|
||||
}
|
||||
|
||||
|
||||
after_build:
|
||||
- ps: $env:CORE_PACKAGE_NAME = 'sourcetraildb_core_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit-msvc' + $env:MSVC_VERSION
|
||||
- ps: $env:PYTHON_PACKAGE_NAME = 'sourcetrailbd_python' + $env:PYTHON_VERSION + '_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit'
|
||||
- ps: $env:JAVA_PACKAGE_NAME = 'sourcetrailbd_java_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit'
|
||||
- ps: $env:PERL_PACKAGE_NAME = 'sourcetrailbd_strawberry-perl-' + $env:PERL_VERSION + '_' + $env:UNDERSCORED_CORE_VERSION + '-windows-' + $env:MBITS + 'bit'
|
||||
- ps: echo $env:CORE_PACKAGE_NAME
|
||||
- ps: echo $env:PYTHON_PACKAGE_NAME
|
||||
- ps: echo $env:JAVA_PACKAGE_NAME
|
||||
- ps: echo $env:PERL_PACKAGE_NAME
|
||||
|
||||
- ps: $env:ARTIFACTS_TO_DEPLOY = ""
|
||||
|
||||
@@ -132,6 +161,24 @@ after_build:
|
||||
|
||||
$env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY + "," + $env:JAVA_PACKAGE_NAME
|
||||
}
|
||||
- ps: |
|
||||
mkdir artifacts_bindings_perl
|
||||
if ($env:DEPLOY_PERL_BINDINGS -eq "1") {
|
||||
cd artifacts_bindings_perl
|
||||
mkdir $env:PERL_PACKAGE_NAME
|
||||
cd $env:PERL_PACKAGE_NAME
|
||||
mkdir license
|
||||
cd ../..
|
||||
|
||||
copy build-perl/bindings_perl/sourcetraildb.dll artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/
|
||||
copy build-perl/bindings_perl/sourcetraildb.pm artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/
|
||||
copy LICENSE.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/license_sourcetraildb.txt
|
||||
copy external/catch/license_catch.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/
|
||||
copy external/cpp_sqlite/license_cpp_sqlite.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/
|
||||
copy external/json/license_json.txt artifacts_bindings_perl/$env:PERL_PACKAGE_NAME/license/
|
||||
|
||||
$env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY + "," + $env:PERL_PACKAGE_NAME
|
||||
}
|
||||
- ps: |
|
||||
$env:ARTIFACTS_TO_DEPLOY = $env:ARTIFACTS_TO_DEPLOY.substring(1)
|
||||
echo $env:ARTIFACTS_TO_DEPLOY
|
||||
@@ -151,6 +198,9 @@ artifacts:
|
||||
- path: artifacts_bindings_java
|
||||
name: $(JAVA_PACKAGE_NAME)
|
||||
type: Zip
|
||||
- path: artifacts_bindings_perl
|
||||
name: $(PERL_PACKAGE_NAME)
|
||||
type: Zip
|
||||
|
||||
|
||||
deploy:
|
||||
|
||||
Reference in New Issue
Block a user