Add new utility setup scripts

This commit is contained in:
Dan Paulat 2025-05-25 13:45:00 -05:00
parent 9c486d5018
commit 102650e936
26 changed files with 281 additions and 143 deletions

3
requirements.txt Normal file
View file

@ -0,0 +1,3 @@
conan
geopandas
GitPython

View file

@ -1,25 +0,0 @@
call tools\setup-common.bat
set build_dir=build-debug
set build_type=Debug
set conan_profile=scwx-win64_msvc2022
set qt_version=6.8.3
set qt_arch=msvc2022_64
conan config install tools/conan/profiles/%conan_profile% -tf profiles
conan install . ^
--remote conancenter ^
--build missing ^
--profile:all %conan_profile% ^
--settings:all build_type=%build_type% ^
--output-folder %build_dir%/conan
mkdir %build_dir%
cmake -B %build_dir% -S . ^
-DCMAKE_BUILD_TYPE=%build_type% ^
-DCMAKE_CONFIGURATION_TYPES=%build_type% ^
-DCMAKE_PREFIX_PATH=C:/Qt/%qt_version%/%qt_arch% ^
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=external/cmake-conan/conan_provider.cmake ^
-DCONAN_HOST_PROFILE=%conan_profile% ^
-DCONAN_BUILD_PROFILE=%conan_profile%
pause

View file

@ -1,28 +0,0 @@
#!/bin/bash
./tools/setup-common.sh
build_dir=${1:-build-debug}
build_type=Debug
conan_profile=${2:-scwx-linux_gcc-11}
qt_version=6.8.3
qt_arch=gcc_64
script_dir="$(dirname "$(readlink -f "$0")")"
conan config install tools/conan/profiles/${conan_profile} -tf profiles
conan install . \
--remote conancenter \
--build missing \
--profile:all ${conan_profile} \
--settings:all build_type=${build_type} \
--output-folder ${build_dir}/conan
mkdir -p ${build_dir}
cmake -B ${build_dir} -S . \
-DCMAKE_BUILD_TYPE=${build_type} \
-DCMAKE_CONFIGURATION_TYPES=${build_type} \
-DCMAKE_INSTALL_PREFIX=${build_dir}/${build_type}/supercell-wx \
-DCMAKE_PREFIX_PATH=/opt/Qt/${qt_version}/${qt_arch} \
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=${script_dir}/external/cmake-conan/conan_provider.cmake \
-DCONAN_HOST_PROFILE=${conan_profile} \
-DCONAN_BUILD_PROFILE=${conan_profile} \
-G Ninja

View file

@ -1,28 +0,0 @@
call tools\setup-common.bat
set build_dir=build
set conan_profile=scwx-win64_msvc2022
set qt_version=6.8.3
set qt_arch=msvc2022_64
conan config install tools/conan/profiles/%conan_profile% -tf profiles
conan install . ^
--remote conancenter ^
--build missing ^
--profile:all %conan_profile% ^
--settings:all build_type=Debug ^
--output-folder %build_dir%/conan
conan install . ^
--remote conancenter ^
--build missing ^
--profile:all %conan_profile% ^
--settings:all build_type=Release ^
--output-folder %build_dir%/conan
mkdir %build_dir%
cmake -B %build_dir% -S . ^
-DCMAKE_PREFIX_PATH=C:/Qt/%qt_version%/%qt_arch% ^
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=external/cmake-conan/conan_provider.cmake ^
-DCONAN_HOST_PROFILE=%conan_profile% ^
-DCONAN_BUILD_PROFILE=%conan_profile%
pause

View file

@ -1,25 +0,0 @@
call tools\setup-common.bat
set build_dir=build-release
set build_type=Release
set conan_profile=scwx-win64_msvc2022
set qt_version=6.8.3
set qt_arch=msvc2022_64
conan config install tools/conan/profiles/%conan_profile% -tf profiles
conan install . ^
--remote conancenter ^
--build missing ^
--profile:all %conan_profile% ^
--settings:all build_type=%build_type% ^
--output-folder %build_dir%/conan
mkdir %build_dir%
cmake -B %build_dir% -S . ^
-DCMAKE_BUILD_TYPE=%build_type% ^
-DCMAKE_CONFIGURATION_TYPES=%build_type% ^
-DCMAKE_PREFIX_PATH=C:/Qt/%qt_version%/%qt_arch% ^
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=external/cmake-conan/conan_provider.cmake ^
-DCONAN_HOST_PROFILE=%conan_profile% ^
-DCONAN_BUILD_PROFILE=%conan_profile%
pause

View file

@ -1,28 +0,0 @@
#!/bin/bash
./tools/setup-common.sh
build_dir=${1:-build-release}
build_type=Release
conan_profile=${2:-scwx-linux_gcc-11}
qt_version=6.8.3
qt_arch=gcc_64
script_dir="$(dirname "$(readlink -f "$0")")"
conan config install tools/conan/profiles/${conan_profile} -tf profiles
conan install . \
--remote conancenter \
--build missing \
--profile:all ${conan_profile} \
--settings:all build_type=${build_type} \
--output-folder ${build_dir}/conan
mkdir -p ${build_dir}
cmake -B ${build_dir} -S . \
-DCMAKE_BUILD_TYPE=${build_type} \
-DCMAKE_CONFIGURATION_TYPES=${build_type} \
-DCMAKE_INSTALL_PREFIX=${build_dir}/${build_type}/supercell-wx \
-DCMAKE_PREFIX_PATH=/opt/Qt/${qt_version}/${qt_arch} \
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=${script_dir}/external/cmake-conan/conan_provider.cmake \
-DCONAN_HOST_PROFILE=${conan_profile} \
-DCONAN_BUILD_PROFILE=${conan_profile} \
-G Ninja

View file

@ -0,0 +1,22 @@
@setlocal enabledelayedexpansion
@set script_dir=%~dp0
:: Install Python packages
@pip install --upgrade -r "%script_dir%\..\requirements.txt"
:: Configure default Conan profile
@conan profile detect -e
:: Conan profiles
@set profile_count=1
@set /a last_profile=profile_count - 1
@set conan_profile[0]=scwx-win64_msvc2022
:: Install Conan profiles
@for /L %%i in (0,1,!last_profile!) do @(
set "profile_name=!conan_profile[%%i]!"
conan config install "%script_dir%\conan\profiles\%profile_name%" -tf profiles
)
@pause

View file

@ -0,0 +1 @@
@set qt_version=6.8.3

View file

@ -0,0 +1,2 @@
#!/bin/bash
export qt_version=6.8.3

View file

@ -0,0 +1,19 @@
@echo off
set script_dir=%~dp0
set cmake_args=-B "%build_dir%" -S "%script_dir%\..\.." ^
-G "%generator%" ^
-DCMAKE_PREFIX_PATH="%qt_base%/%qt_version%/%qt_arch%" ^
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="%script_dir%\..\..\external\cmake-conan\conan_provider.cmake" ^
-DCONAN_HOST_PROFILE=%conan_profile% ^
-DCONAN_BUILD_PROFILE=%conan_profile%
if defined build_type (
set cmake_args=%cmake_args% ^
-DCMAKE_BUILD_TYPE=%build_type% ^
-DCMAKE_CONFIGURATION_TYPES=%build_type%
)
@echo on
mkdir "%build_dir%"
cmake %cmake_args%

View file

@ -0,0 +1,23 @@
#!/bin/bash
script_dir="$(dirname "$(readlink -f "$0")")"
cmake_args=(
-B "${build_dir}"
-S "${script_dir}/../.."
-G "${generator}"
-DCMAKE_PREFIX_PATH="${qt_base}/${qt_version}/${qt_arch}"
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="${script_dir}/../../external/cmake-conan/conan_provider.cmake"
-DCONAN_HOST_PROFILE="${conan_profile}"
-DCONAN_BUILD_PROFILE="${conan_profile}"
)
if [[ -n "${build_type}" ]]; then
cmake_args+=(
-DCMAKE_BUILD_TYPE="${build_type}"
-DCMAKE_CONFIGURATION_TYPES="${build_type}"
-DCMAKE_INSTALL_PREFIX="${build_dir}/${build_type}/supercell-wx"
)
fi
mkdir -p "${build_dir}"
cmake "${cmake_args[@]}"

View file

@ -0,0 +1,26 @@
@set script_dir=%~dp0
:: Import common paths
@call lib\common-paths.bat
:: Install Python packages
pip install --upgrade -r "%script_dir%\..\..\requirements.txt"
@if defined build_type (
:: Install Conan profile and packages
call lib\setup-conan.bat
) else (
:: Install Conan profile and debug packages
set build_type=Debug
call lib\setup-conan.bat
:: Install Conan profile and release packages
set build_type=Release
call lib\setup-conan.bat
:: Unset build_type
set build_type=
)
:: Run CMake Configure
@call lib\run-cmake-configure.bat

27
tools/lib/setup-common.sh Normal file
View file

@ -0,0 +1,27 @@
#!/bin/bash
script_dir="$(dirname "$(readlink -f "$0")")"
# Import common paths
source ./common-paths.sh
# Install Python packages
pip install --upgrade --user ${script_dir}/../../requirements.txt
if [[ -n "${build_type}" ]]; then
# Install Conan profile and packages
./setup-conan.sh
else
# Install Conan profile and debug packages
export build_type=Debug
./setup-conan.sh
# Install Conan profile and release packages
export build_type=Release
./setup-conan.sh
# Unset build_type
unset build_type
fi
# Run CMake Configure
./run-cmake-configure.sh

15
tools/lib/setup-conan.bat Normal file
View file

@ -0,0 +1,15 @@
@set script_dir=%~dp0
:: Configure default Conan profile
conan profile detect -e
:: Install selected Conan profile
conan config install "%script_dir%\..\conan\profiles\%conan_profile%" -tf profiles
:: Install Conan packages
conan install "%script_dir%\..\.." ^
--remote conancenter ^
--build missing ^
--profile:all %conan_profile% ^
--settings:all build_type=%build_type% ^
--output-folder "%build_dir%\conan"

16
tools/lib/setup-conan.sh Normal file
View file

@ -0,0 +1,16 @@
#!/bin/bash
script_dir="$(dirname "$(readlink -f "$0")")"
# Configure default Conan profile
conan profile detect -e
# Install selected Conan profile
conan config install "${script_dir}/../conan/profiles/${conan_profile}" -tf profiles
# Install Conan packages
conan install "${script_dir}/../.." \
--remote conancenter \
--build missing \
--profile:all ${conan_profile} \
--settings:all build_type=${build_type} \
--output-folder "${build_dir}/conan"

View file

@ -1,4 +0,0 @@
pip install --upgrade conan
pip install --upgrade geopandas
pip install --upgrade GitPython
conan profile detect -e

View file

@ -1,5 +0,0 @@
#!/bin/bash
pip install --upgrade --user conan
pip install --upgrade --user geopandas
pip install --upgrade --user GitPython
conan profile detect -e

View file

@ -0,0 +1,16 @@
@set script_dir=%~dp0
@set build_dir=%script_dir%\..\build-debug-msvc2022
@set build_type=Debug
@set conan_profile=scwx-win64_msvc2022
@set generator=Visual Studio 17 2022
@set qt_base=C:/Qt
@set qt_arch=msvc2022_64
:: Assign user-specified build directory
@if not "%~1"=="" set build_dir=%~1
:: Perform common setup
@call lib\setup-common.bat
@pause

View file

@ -0,0 +1,16 @@
@set script_dir=%~dp0
@set build_dir=%script_dir%\..\build-debug-ninja
@set build_type=Debug
@set conan_profile=scwx-win64_msvc2022
@set generator=Ninja
@set qt_base=C:/Qt
@set qt_arch=msvc2022_64
:: Assign user-specified build directory
@if not "%~1"=="" set build_dir=%~1
:: Perform common setup
@call lib\setup-common.bat
@pause

12
tools/setup-debug.sh Normal file
View file

@ -0,0 +1,12 @@
#!/bin/bash
script_dir="$(dirname "$(readlink -f "$0")")"
export build_dir=${1:-${script_dir}/../build-debug}
export build_type=Debug
export conan_profile=${2:-scwx-linux_gcc-11}
export generator=Ninja
export qt_base=/opt/Qt
export qt_arch=gcc_64
# Perform common setup
./lib/setup-common.sh

View file

@ -0,0 +1,15 @@
@set script_dir=%~dp0
@set build_dir=%script_dir%\..\build-msvc2022
@set conan_profile=scwx-win64_msvc2022
@set generator=Visual Studio 17 2022
@set qt_base=C:/Qt
@set qt_arch=msvc2022_64
:: Assign user-specified build directory
@if not "%~1"=="" set build_dir=%~1
:: Perform common setup
@call lib\setup-common.bat
@pause

View file

@ -0,0 +1,15 @@
@set script_dir=%~dp0
@set build_dir=%script_dir%\..\build-ninja
@set conan_profile=scwx-win64_msvc2022
@set generator=Ninja
@set qt_base=C:/Qt
@set qt_arch=msvc2022_64
:: Assign user-specified build directory
@if not "%~1"=="" set build_dir=%~1
:: Perform common setup
@call lib\setup-common.bat
@pause

9
tools/setup-multi.sh Normal file
View file

@ -0,0 +1,9 @@
#!/bin/bash
export build_dir=${1:-build-release}
export conan_profile=${2:-scwx-linux_gcc-11}
export generator=Ninja
export qt_base=/opt/Qt
export qt_arch=gcc_64
# Perform common setup
./lib/setup-common.sh

View file

@ -0,0 +1,16 @@
@set script_dir=%~dp0
@set build_dir=%script_dir%\..\build-release-msvc2022
@set build_type=Release
@set conan_profile=scwx-win64_msvc2022
@set generator=Visual Studio 17 2022
@set qt_base=C:/Qt
@set qt_arch=msvc2022_64
:: Assign user-specified build directory
@if not "%~1"=="" set build_dir=%~1
:: Perform common setup
@call lib\setup-common.bat
@pause

View file

@ -0,0 +1,16 @@
@set script_dir=%~dp0
@set build_dir=%script_dir%\..\build-release-ninja
@set build_type=Release
@set conan_profile=scwx-win64_msvc2022
@set generator=Ninja
@set qt_base=C:/Qt
@set qt_arch=msvc2022_64
:: Assign user-specified build directory
@if not "%~1"=="" set build_dir=%~1
:: Perform common setup
@call lib\setup-common.bat
@pause

12
tools/setup-release.sh Normal file
View file

@ -0,0 +1,12 @@
#!/bin/bash
script_dir="$(dirname "$(readlink -f "$0")")"
export build_dir=${1:-${script_dir}/../build-release}
export build_type=Release
export conan_profile=${2:-scwx-linux_gcc-11}
export generator=Ninja
export qt_base=/opt/Qt
export qt_arch=gcc_64
# Perform common setup
./lib/setup-common.sh