diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..afdd2a37 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +conan +geopandas +GitPython diff --git a/setup-debug.bat b/setup-debug.bat deleted file mode 100644 index e8076f02..00000000 --- a/setup-debug.bat +++ /dev/null @@ -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 diff --git a/setup-debug.sh b/setup-debug.sh deleted file mode 100755 index 689ac617..00000000 --- a/setup-debug.sh +++ /dev/null @@ -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 diff --git a/setup-multi.bat b/setup-multi.bat deleted file mode 100644 index b7f0b8df..00000000 --- a/setup-multi.bat +++ /dev/null @@ -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 diff --git a/setup-release.bat b/setup-release.bat deleted file mode 100644 index e019e204..00000000 --- a/setup-release.bat +++ /dev/null @@ -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 diff --git a/setup-release.sh b/setup-release.sh deleted file mode 100755 index 8d2b5fe6..00000000 --- a/setup-release.sh +++ /dev/null @@ -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 diff --git a/tools/configure-environment.bat b/tools/configure-environment.bat new file mode 100644 index 00000000..caecbe33 --- /dev/null +++ b/tools/configure-environment.bat @@ -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 diff --git a/tools/lib/common-paths.bat b/tools/lib/common-paths.bat new file mode 100644 index 00000000..69f6c6fc --- /dev/null +++ b/tools/lib/common-paths.bat @@ -0,0 +1 @@ +@set qt_version=6.8.3 diff --git a/tools/lib/common-paths.sh b/tools/lib/common-paths.sh new file mode 100644 index 00000000..a1f48932 --- /dev/null +++ b/tools/lib/common-paths.sh @@ -0,0 +1,2 @@ +#!/bin/bash +export qt_version=6.8.3 diff --git a/tools/lib/run-cmake-configure.bat b/tools/lib/run-cmake-configure.bat new file mode 100644 index 00000000..6dfdd7ba --- /dev/null +++ b/tools/lib/run-cmake-configure.bat @@ -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% diff --git a/tools/lib/run-cmake-configure.sh b/tools/lib/run-cmake-configure.sh new file mode 100644 index 00000000..24e31c1f --- /dev/null +++ b/tools/lib/run-cmake-configure.sh @@ -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[@]}" diff --git a/tools/lib/setup-common.bat b/tools/lib/setup-common.bat new file mode 100644 index 00000000..d04cf430 --- /dev/null +++ b/tools/lib/setup-common.bat @@ -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 diff --git a/tools/lib/setup-common.sh b/tools/lib/setup-common.sh new file mode 100644 index 00000000..48c6b6c6 --- /dev/null +++ b/tools/lib/setup-common.sh @@ -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 diff --git a/tools/lib/setup-conan.bat b/tools/lib/setup-conan.bat new file mode 100644 index 00000000..e3f4f444 --- /dev/null +++ b/tools/lib/setup-conan.bat @@ -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" diff --git a/tools/lib/setup-conan.sh b/tools/lib/setup-conan.sh new file mode 100644 index 00000000..2ac38ee7 --- /dev/null +++ b/tools/lib/setup-conan.sh @@ -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" diff --git a/tools/setup-common.bat b/tools/setup-common.bat deleted file mode 100644 index bada34ed..00000000 --- a/tools/setup-common.bat +++ /dev/null @@ -1,4 +0,0 @@ -pip install --upgrade conan -pip install --upgrade geopandas -pip install --upgrade GitPython -conan profile detect -e diff --git a/tools/setup-common.sh b/tools/setup-common.sh deleted file mode 100755 index 2533d6ec..00000000 --- a/tools/setup-common.sh +++ /dev/null @@ -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 diff --git a/tools/setup-debug-msvc2022.bat b/tools/setup-debug-msvc2022.bat new file mode 100644 index 00000000..4e775e3f --- /dev/null +++ b/tools/setup-debug-msvc2022.bat @@ -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 diff --git a/tools/setup-debug-ninja.bat b/tools/setup-debug-ninja.bat new file mode 100644 index 00000000..fb360f25 --- /dev/null +++ b/tools/setup-debug-ninja.bat @@ -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 diff --git a/tools/setup-debug.sh b/tools/setup-debug.sh new file mode 100644 index 00000000..bcbec034 --- /dev/null +++ b/tools/setup-debug.sh @@ -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 diff --git a/tools/setup-multi-msvc2022.bat b/tools/setup-multi-msvc2022.bat new file mode 100644 index 00000000..07d6c567 --- /dev/null +++ b/tools/setup-multi-msvc2022.bat @@ -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 diff --git a/tools/setup-multi-ninja.bat b/tools/setup-multi-ninja.bat new file mode 100644 index 00000000..11327488 --- /dev/null +++ b/tools/setup-multi-ninja.bat @@ -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 diff --git a/tools/setup-multi.sh b/tools/setup-multi.sh new file mode 100644 index 00000000..35661767 --- /dev/null +++ b/tools/setup-multi.sh @@ -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 diff --git a/tools/setup-release-msvc2022.bat b/tools/setup-release-msvc2022.bat new file mode 100644 index 00000000..d1f57aca --- /dev/null +++ b/tools/setup-release-msvc2022.bat @@ -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 diff --git a/tools/setup-release-ninja.bat b/tools/setup-release-ninja.bat new file mode 100644 index 00000000..d452f408 --- /dev/null +++ b/tools/setup-release-ninja.bat @@ -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 diff --git a/tools/setup-release.sh b/tools/setup-release.sh new file mode 100644 index 00000000..3889983b --- /dev/null +++ b/tools/setup-release.sh @@ -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