diff --git a/src/build-scripts/build-apk.sh b/src/build-scripts/build-apk.sh index 2b580f88..493ba394 100755 --- a/src/build-scripts/build-apk.sh +++ b/src/build-scripts/build-apk.sh @@ -3,12 +3,26 @@ set -e pushd ../keepass2android +# Determine if we use msbuild or xabuild to build. +if which msbuild > /dev/null; then + if [ $(uname) == "Linux" ]; then + # For now, when running on Linux, we can't use msbuild but have to use xabuild (provided by https://github.com/xamarin/xamarin-android) + BUILDER=xabuild + else + BUILDER=msbuild + fi +else + BUILDER=xabuild +fi + +CONFIG=Debug + # check if ANDROID_HOME is defined if [ -z ${ANDROID_HOME+x} ]; then - xabuild keepass2android.csproj /t:SignAndroidPackage "$@" + $BUILDER keepass2android-app.csproj /t:SignAndroidPackage /p:Configuration="$CONFIG" /p:Platform=AnyCPU "$@" else - xabuild keepass2android.csproj /p:AndroidSdkDirectory=$ANDROID_HOME /t:SignAndroidPackage "$@" + $BUILDER keepass2android-app.csproj /p:AndroidSdkDirectory=$ANDROID_HOME /t:SignAndroidPackage /p:Configuration="$CONFIG" /p:Platform=AnyCPU "$@" fi popd diff --git a/src/build-scripts/build-java.bat b/src/build-scripts/build-java.bat index 03c40831..e065e1ce 100644 --- a/src/build-scripts/build-java.bat +++ b/src/build-scripts/build-java.bat @@ -1,20 +1,15 @@ cd ..\java\JavaFileStorageTest-AS -./gradlew clean assemble +call ./gradlew clean assemble || exit /b cd ..\..\build-scripts cd ..\java\KP2ASoftkeyboard_AS -./gradlew clean assemble +call ./gradlew clean assemble || exit /b cd ..\..\build-scripts cd ..\java\Keepass2AndroidPluginSDK2 -./gradlew clean assemble +call ./gradlew clean assemble || exit /b cd ..\..\build-scripts cd ..\java\KP2AKdbLibrary -./gradlew clean assemble -cd ..\..\build-scripts - -cd ..\java\PluginQR -./gradlew clean assemble - +call ./gradlew clean assemble || exit /b cd ..\..\build-scripts diff --git a/src/build-scripts/build-java.sh b/src/build-scripts/build-java.sh index 66759059..d570bbc3 100755 --- a/src/build-scripts/build-java.sh +++ b/src/build-scripts/build-java.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -unset ANDROID_NDK_HOME ANDROID_NDK +#unset ANDROID_NDK_HOME ANDROID_NDK pushd ../java/ @@ -17,7 +17,7 @@ pushd Keepass2AndroidPluginSDK2 ./gradlew assemble popd -pushd PluginQR +pushd KP2AKdbLibrary ./gradlew assemble popd diff --git a/src/build-scripts/build-xamarin.bat b/src/build-scripts/build-xamarin.bat index 9291bf02..dbddc871 100644 --- a/src/build-scripts/build-xamarin.bat +++ b/src/build-scripts/build-xamarin.bat @@ -9,8 +9,17 @@ cd ..\..\keepass2android call UseManifestDebug.bat cd .. -call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 +IF NOT "%VSCMD_VCVARSALL_INIT%" == "1" ( + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 +) -msbuild KeePass.sln /target:keepass2android /p:BuildProjectReferences=true /p:Configuration="Debug" /p:Platform="Any CPU" +REM Download NuGet dependencies +msbuild KeePass.sln -t:restore -p:RestorePackagesConfig=true || exit /b -cd build-scripts \ No newline at end of file +REM Build +set CONFIG=Debug +msbuild KeePass.sln /target:keepass2android-app /p:BuildProjectReferences=true /p:Configuration="%CONFIG%" /p:Platform="Any CPU" /p:AndroidBuildApplicationPackage=True || exit /b + +cd build-scripts + +echo apk can be found in src\keepass2android\bin\%CONFIG% diff --git a/src/build-scripts/build-xamarin.sh b/src/build-scripts/build-xamarin.sh index 075973f3..1659c0e6 100755 --- a/src/build-scripts/build-xamarin.sh +++ b/src/build-scripts/build-xamarin.sh @@ -20,12 +20,26 @@ popd # call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 +# Determine if we use msbuild or xabuild to build. +if which msbuild > /dev/null; then + if [ $(uname) == "Linux" ]; then + # For now, when running on Linux, we can't use msbuild but have to use xabuild (provided by https://github.com/xamarin/xamarin-android) + BUILDER=xabuild + else + BUILDER=msbuild + fi +else + BUILDER=xabuild +fi + +CONFIG=Debug + # check if ANDROID_HOME is defined if [ -z ${ANDROID_HOME+x} ]; then - xabuild KeePass.sln /target:keepass2android /p:BuildProjectReferences=true /p:Configuration="Debug" /p:Platform="Any CPU" "$@" + $BUILDER KeePass.sln /target:keepass2android-app /p:BuildProjectReferences=true /p:Configuration="$CONFIG" /p:Platform="Any CPU" "$@" else - xabuild KeePass.sln /target:keepass2android /p:AndroidSdkDirectory=$ANDROID_HOME /p:BuildProjectReferences=true /p:Configuration="Debug" /p:Platform="Any CPU" "$@" + $BUILDER KeePass.sln /target:keepass2android-app /p:AndroidSdkDirectory=$ANDROID_HOME /p:BuildProjectReferences=true /p:Configuration="$CONFIG" /p:Platform="Any CPU" "$@" fi popd diff --git a/src/build.readme.md b/src/build.readme.md index 76fa0d4f..5e7efa02 100644 --- a/src/build.readme.md +++ b/src/build.readme.md @@ -15,7 +15,12 @@ To build KP2A from scratch, make sure that you have Xamarin's Mono for Android i ## Build ### On Windows - +From within the `src` directory, build the native lib with: +```bat +cd java/argon2 +%ANDROID_NDK_ROOT%/ndk-build.cmd +``` +Then, from within the `src` directory run: ```bat cd build-scripts build-java.bat diff --git a/src/java/KP2AKdbLibrary/gradlew b/src/java/KP2AKdbLibrary/gradlew old mode 100644 new mode 100755