Merge pull request #309 from dpaulat/feature/conan-2

Conan 2
This commit is contained in:
Dan Paulat 2024-11-30 11:31:59 -06:00 committed by GitHub
commit 40b3ecce16
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 246 additions and 102 deletions

View file

@ -33,12 +33,8 @@ jobs:
qt_arch_dir: msvc2022_64 qt_arch_dir: msvc2022_64
qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport
qt_tools: '' qt_tools: ''
conan_arch: x86_64
conan_compiler: Visual Studio
conan_compiler_version: 17
conan_compiler_runtime: --settings compiler.runtime=MD
conan_compiler_libcxx: ''
conan_package_manager: '' conan_package_manager: ''
conan_profile: scwx-win64_msvc2022
artifact_suffix: windows-x64 artifact_suffix: windows-x64
- name: linux64_gcc - name: linux64_gcc
os: ubuntu-22.04 os: ubuntu-22.04
@ -51,12 +47,8 @@ jobs:
qt_arch_dir: gcc_64 qt_arch_dir: gcc_64
qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport
qt_tools: '' qt_tools: ''
conan_arch: x86_64
conan_compiler: gcc
conan_compiler_version: 11
conan_compiler_libcxx: --settings compiler.libcxx=libstdc++
conan_compiler_runtime: ''
conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True
conan_profile: scwx-linux_gcc-11
artifact_suffix: linux-x64 artifact_suffix: linux-x64
compiler_packages: '' compiler_packages: ''
- name: linux64_clang - name: linux64_clang
@ -70,12 +62,8 @@ jobs:
qt_arch_dir: gcc_64 qt_arch_dir: gcc_64
qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport
qt_tools: '' qt_tools: ''
conan_arch: x86_64
conan_compiler: clang
conan_compiler_version: 17
conan_compiler_libcxx: --settings compiler.libcxx=libstdc++11
conan_compiler_runtime: ''
conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True
conan_profile: scwx-linux_clang-17
artifact_suffix: linux-clang-x64 artifact_suffix: linux-clang-x64
compiler_packages: clang-17 compiler_packages: clang-17
name: ${{ matrix.name }} name: ${{ matrix.name }}
@ -128,28 +116,33 @@ jobs:
- name: Install Conan Packages - name: Install Conan Packages
shell: pwsh shell: pwsh
run: | run: |
pip install "conan<2.0" pip install conan
conan profile new default --detect conan profile detect -e
conan install ./source/ ` conan config install `
./source/tools/conan/profiles/${{ matrix.conan_profile }} `
-tf profiles
mkdir build
cd build
mkdir conan
conan install ../source/ `
--remote conancenter ` --remote conancenter `
--build missing ` --build missing `
--settings arch=${{ matrix.conan_arch }} ` --profile:all ${{ matrix.conan_profile }} `
--settings build_type=${{ matrix.build_type }} ` --settings:all build_type=${{ matrix.build_type }} `
--settings compiler="${{ matrix.conan_compiler }}" ` --output-folder ./conan/ `
--settings compiler.version=${{ matrix.conan_compiler_version }} `
${{ matrix.conan_compiler_libcxx }} `
${{ matrix.conan_compiler_runtime }} `
${{ matrix.conan_package_manager }} ${{ matrix.conan_package_manager }}
- name: Build Supercell Wx - name: Build Supercell Wx
shell: pwsh shell: pwsh
run: | run: |
mkdir build
cd build cd build
cmake ../source/ ` cmake ../source/ `
-G Ninja ` -G Ninja `
-DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" ` -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" `
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="${{ github.workspace }}/source/external/cmake-conan/conan_provider.cmake" `
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" `
-DCONAN_HOST_PROFILE="${{ matrix.conan_profile }}" `
-DCONAN_BUILD_PROFILE="${{ matrix.conan_profile }}"
ninja supercell-wx wxtest ninja supercell-wx wxtest
- name: Separate Debug Symbols (Linux) - name: Separate Debug Symbols (Linux)
@ -157,6 +150,7 @@ jobs:
shell: bash shell: bash
run: | run: |
cd build/ cd build/
cd Release/
cd bin/ cd bin/
objcopy --only-keep-debug supercell-wx supercell-wx.debug objcopy --only-keep-debug supercell-wx supercell-wx.debug
objcopy --strip-debug --strip-unneeded supercell-wx objcopy --strip-debug --strip-unneeded supercell-wx
@ -201,7 +195,7 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: supercell-wx-debug-${{ matrix.artifact_suffix }} name: supercell-wx-debug-${{ matrix.artifact_suffix }}
path: ${{ github.workspace }}/build/bin/*.pdb path: ${{ github.workspace }}/build/Release/bin/*.pdb
- name: Upload Artifacts (Linux) - name: Upload Artifacts (Linux)
if: ${{ startsWith(matrix.os, 'ubuntu') }} if: ${{ startsWith(matrix.os, 'ubuntu') }}
@ -216,8 +210,8 @@ jobs:
with: with:
name: supercell-wx-debug-${{ matrix.artifact_suffix }} name: supercell-wx-debug-${{ matrix.artifact_suffix }}
path: | path: |
${{ github.workspace }}/build/bin/*.debug ${{ github.workspace }}/build/Release/bin/*.debug
${{ github.workspace }}/build/lib/*.debug ${{ github.workspace }}/build/Release/lib/*.debug
- name: Build Installer (Windows) - name: Build Installer (Windows)
if: matrix.os == 'windows-2022' if: matrix.os == 'windows-2022'

View file

@ -24,12 +24,8 @@ jobs:
qt_arch_aqt: linux_gcc_64 qt_arch_aqt: linux_gcc_64
qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport
qt_tools: '' qt_tools: ''
conan_arch: x86_64
conan_compiler: clang
conan_compiler_version: 17
conan_compiler_libcxx: --settings compiler.libcxx=libstdc++11
conan_compiler_runtime: ''
conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True
conan_profile: scwx-linux_clang-17
compiler_packages: clang-17 clang-tidy-17 compiler_packages: clang-17 clang-tidy-17
name: ${{ matrix.name }} name: ${{ matrix.name }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@ -78,28 +74,33 @@ jobs:
- name: Install Conan Packages - name: Install Conan Packages
shell: pwsh shell: pwsh
run: | run: |
pip install "conan<2.0" pip install conan
conan profile new default --detect conan profile detect -e
conan install ./source/ ` conan config install `
./source/tools/conan/profiles/${{ matrix.conan_profile }} `
-tf profiles
mkdir build
cd build
mkdir conan
conan install ../source/ `
--remote conancenter ` --remote conancenter `
--build missing ` --build missing `
--settings arch=${{ matrix.conan_arch }} ` --profile:all ${{ matrix.conan_profile }} `
--settings build_type=${{ matrix.build_type }} ` --settings:all build_type=${{ matrix.build_type }} `
--settings compiler="${{ matrix.conan_compiler }}" ` --output-folder ./conan/ `
--settings compiler.version=${{ matrix.conan_compiler_version }} `
${{ matrix.conan_compiler_libcxx }} `
${{ matrix.conan_compiler_runtime }} `
${{ matrix.conan_package_manager }} ${{ matrix.conan_package_manager }}
- name: Autogenerate - name: Autogenerate
shell: pwsh shell: pwsh
run: | run: |
mkdir build
cd build cd build
cmake ../source/ ` cmake ../source/ `
-G Ninja ` -G Ninja `
-DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" ` -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" `
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="${{ github.workspace }}/source/external/cmake-conan/conan_provider.cmake" `
-DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" ` -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" `
-DCONAN_HOST_PROFILE="${{ matrix.conan_profile }}" `
-DCONAN_BUILD_PROFILE="${{ matrix.conan_profile }}" `
-DCMAKE_EXPORT_COMPILE_COMMANDS=on -DCMAKE_EXPORT_COMPILE_COMMANDS=on
ninja scwx-qt_generate_counties_db ` ninja scwx-qt_generate_counties_db `
scwx-qt_generate_versions ` scwx-qt_generate_versions `

1
.gitignore vendored
View file

@ -5,6 +5,7 @@ CMakeLists.txt.user
CMakeCache.txt CMakeCache.txt
CMakeFiles CMakeFiles
CMakeScripts CMakeScripts
CMakeUserPresets.json
Testing Testing
cmake_install.cmake cmake_install.cmake
install_manifest.txt install_manifest.txt

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.21) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME supercell-wx) set(PROJECT_NAME supercell-wx)
project(${PROJECT_NAME} project(${PROJECT_NAME}
VERSION 0.4.7 VERSION 0.4.7
@ -11,36 +11,19 @@ set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0079 NEW) set(CMAKE_POLICY_DEFAULT_CMP0079 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0148 OLD) # aws-sdk-cpp uses FindPythonInterp set(CMAKE_POLICY_DEFAULT_CMP0148 OLD) # aws-sdk-cpp uses FindPythonInterp
include(tools/scwx_config.cmake)
scwx_output_dirs_setup()
enable_testing() enable_testing()
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
include(${PROJECT_SOURCE_DIR}/external/cmake-conan/conan.cmake)
set_property(DIRECTORY set_property(DIRECTORY
APPEND APPEND
PROPERTY CMAKE_CONFIGURE_DEPENDS PROPERTY CMAKE_CONFIGURE_DEPENDS
conanfile.py) conanfile.py)
# Don't use RelWithDebInfo Conan packages
if (${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
set(conan_build_type "Release")
else()
set(conan_build_type ${CMAKE_BUILD_TYPE})
endif()
conan_cmake_autodetect(settings
BUILD_TYPE ${conan_build_type})
conan_cmake_install(PATH_OR_REFERENCE ${PROJECT_SOURCE_DIR}
BUILD missing
REMOTE conancenter
SETTINGS ${settings})
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
include(${CMAKE_BINARY_DIR}/conan_paths.cmake)
conan_basic_setup(TARGETS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBOOST_ALL_NO_LIB") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBOOST_ALL_NO_LIB")
set(SCWX_DIR ${PROJECT_SOURCE_DIR}) set(SCWX_DIR ${PROJECT_SOURCE_DIR})

View file

@ -1,17 +1,21 @@
from conans import ConanFile from conan import ConanFile
from conan.tools.cmake import CMake
from conan.tools.files import copy
import os
class SupercellWxConan(ConanFile): class SupercellWxConan(ConanFile):
settings = ("os", "compiler", "build_type", "arch") settings = ("os", "compiler", "build_type", "arch")
requires = ("boost/1.86.0", requires = ("boost/1.86.0",
"cpr/1.11.0", "cpr/1.11.0",
"fontconfig/2.15.0", "fontconfig/2.15.0",
"freetype/2.13.3", "freetype/2.13.2",
"geographiclib/2.4", "geographiclib/2.4",
"geos/3.13.0", "geos/3.13.0",
"glew/2.2.0", "glew/2.2.0",
"glm/cci.20230113", "glm/cci.20230113",
"gtest/1.15.0", "gtest/1.15.0",
"libcurl/8.10.1", "libcurl/8.10.1",
"libpng/1.6.44",
"libxml2/2.12.7", "libxml2/2.12.7",
"openssl/3.3.2", "openssl/3.3.2",
"re2/20240702", "re2/20240702",
@ -19,19 +23,33 @@ class SupercellWxConan(ConanFile):
"sqlite3/3.46.1", "sqlite3/3.46.1",
"vulkan-loader/1.3.243.0", "vulkan-loader/1.3.243.0",
"zlib/1.3.1") "zlib/1.3.1")
generators = ("cmake", generators = ("CMakeDeps")
"cmake_find_package", default_options = {"geos/*:shared" : True,
"cmake_paths") "libiconv/*:shared" : True,
default_options = {"geos:shared" : True, "openssl/*:no_module": True,
"libiconv:shared" : True, "openssl/*:shared" : True}
"openssl:no_module": True,
"openssl:shared" : True}
def requirements(self): def requirements(self):
if self.settings.os == "Linux": if self.settings.os == "Linux":
self.requires("onetbb/2021.12.0") self.requires("onetbb/2021.12.0")
def imports(self): def generate(self):
self.copy("*.dll", dst="bin", src="bin") build_folder = os.path.join(self.build_folder,
self.copy("*.dylib", dst="bin", src="lib") "..",
self.copy("license*", dst="licenses", src=".", folder=True, ignore_case=True) str(self.settings.build_type),
self.cpp_info.bindirs[0])
for dep in self.dependencies.values():
if dep.cpp_info.bindirs:
copy(self, "*.dll", dep.cpp_info.bindirs[0], build_folder)
if dep.cpp_info.libdirs:
copy(self, "*.dylib", dep.cpp_info.libdirs[0], build_folder)
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def package(self):
cmake = CMake(self)
cmake.install()

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-external) set(PROJECT_NAME scwx-external)
set_property(DIRECTORY set_property(DIRECTORY

@ -1 +1 @@
Subproject commit d5eb42fe7c632868d4535b454ee2e5ba0e349b7f Subproject commit c95e71a9d23bba0c2f6c6a7bc37ae63b7351e8b7

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-aws-sdk-cpp) set(PROJECT_NAME scwx-aws-sdk-cpp)
set(AWS_SDK_WARNINGS_ARE_ERRORS OFF) set(AWS_SDK_WARNINGS_ARE_ERRORS OFF)
@ -21,6 +21,10 @@ set(MINIMIZE_SIZE OFF CACHE BOOL "If enabled, the SDK will be built via
# Save off ${CMAKE_CXX_FLAGS} before modifying compiler settings # Save off ${CMAKE_CXX_FLAGS} before modifying compiler settings
set(CMAKE_CXX_FLAGS_PREV "${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS_PREV "${CMAKE_CXX_FLAGS}")
# Configure OpenSSL crypto library
find_package(OpenSSL)
add_library(crypto ALIAS OpenSSL::Crypto)
# Fix CMake errors for internal variables not set # Fix CMake errors for internal variables not set
include(aws-sdk-cpp/cmake/compiler_settings.cmake) include(aws-sdk-cpp/cmake/compiler_settings.cmake)
set_msvc_warnings() set_msvc_warnings()

@ -1 +1 @@
Subproject commit b240c809b5ea097077fc8222cad71d2329288e48 Subproject commit c22bbf0af0b73d5f0def24a9cdf4ce503ae79e5d

2
external/date.cmake vendored
View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-date) set(PROJECT_NAME scwx-date)
set(USE_SYSTEM_TZ_DB ON) set(USE_SYSTEM_TZ_DB ON)

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-hsluv-c) set(PROJECT_NAME scwx-hsluv-c)
set(HSLUV_C_TESTS OFF) set(HSLUV_C_TESTS OFF)

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-imgui) set(PROJECT_NAME scwx-imgui)
find_package(QT NAMES Qt6 find_package(QT NAMES Qt6

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-mln) set(PROJECT_NAME scwx-mln)
set(gtest_disable_pthreads ON) set(gtest_disable_pthreads ON)

2
external/stb.cmake vendored
View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-stb) set(PROJECT_NAME scwx-stb)
set(STB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/stb PARENT_SCOPE) set(STB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/stb PARENT_SCOPE)

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-textflowcpp) set(PROJECT_NAME scwx-textflowcpp)
set(TEXTFLOWCPP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/textflowcpp PARENT_SCOPE) set(TEXTFLOWCPP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/textflowcpp PARENT_SCOPE)

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set(PROJECT_NAME scwx-units) set(PROJECT_NAME scwx-units)
add_subdirectory(units) add_subdirectory(units)

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.21) cmake_minimum_required(VERSION 3.24)
set_property(DIRECTORY set_property(DIRECTORY
APPEND APPEND

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.21) cmake_minimum_required(VERSION 3.24)
project(scwx-qt LANGUAGES CXX) project(scwx-qt LANGUAGES CXX)

View file

@ -2,12 +2,24 @@ call tools\setup-common.bat
set build_dir=build-debug set build_dir=build-debug
set build_type=Debug set build_type=Debug
set conan_profile=scwx-win64_msvc2022
set qt_version=6.8.0 set qt_version=6.8.0
set qt_arch=msvc2022_64 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% mkdir %build_dir%
cmake -B %build_dir% -S . ^ cmake -B %build_dir% -S . ^
-DCMAKE_BUILD_TYPE=%build_type% ^ -DCMAKE_BUILD_TYPE=%build_type% ^
-DCMAKE_CONFIGURATION_TYPES=%build_type% ^ -DCMAKE_CONFIGURATION_TYPES=%build_type% ^
-DCMAKE_PREFIX_PATH=C:/Qt/%qt_version%/%qt_arch% -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 pause

View file

@ -3,14 +3,26 @@
build_dir=${1:-build-debug} build_dir=${1:-build-debug}
build_type=Debug build_type=Debug
conan_profile=${2:-scwx-linux_gcc-11}
qt_version=6.8.0 qt_version=6.8.0
qt_arch=gcc_64 qt_arch=gcc_64
script_dir="$(dirname "$(readlink -f "$0")")" 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} mkdir -p ${build_dir}
cmake -B ${build_dir} -S . \ cmake -B ${build_dir} -S . \
-DCMAKE_BUILD_TYPE=${build_type} \ -DCMAKE_BUILD_TYPE=${build_type} \
-DCMAKE_CONFIGURATION_TYPES=${build_type} \ -DCMAKE_CONFIGURATION_TYPES=${build_type} \
-DCMAKE_INSTALL_PREFIX=${build_dir}/${build_type}/supercell-wx \ -DCMAKE_INSTALL_PREFIX=${build_dir}/${build_type}/supercell-wx \
-DCMAKE_PREFIX_PATH=/opt/Qt/${qt_version}/${qt_arch} \ -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 -G Ninja

28
setup-multi.bat Normal file
View file

@ -0,0 +1,28 @@
call tools\setup-common.bat
set build_dir=build
set conan_profile=scwx-win64_msvc2022
set qt_version=6.8.0
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

@ -2,12 +2,24 @@ call tools\setup-common.bat
set build_dir=build-release set build_dir=build-release
set build_type=Release set build_type=Release
set conan_profile=scwx-win64_msvc2022
set qt_version=6.8.0 set qt_version=6.8.0
set qt_arch=msvc2022_64 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% mkdir %build_dir%
cmake -B %build_dir% -S . ^ cmake -B %build_dir% -S . ^
-DCMAKE_BUILD_TYPE=%build_type% ^ -DCMAKE_BUILD_TYPE=%build_type% ^
-DCMAKE_CONFIGURATION_TYPES=%build_type% ^ -DCMAKE_CONFIGURATION_TYPES=%build_type% ^
-DCMAKE_PREFIX_PATH=C:/Qt/%qt_version%/%qt_arch% -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 pause

View file

@ -3,14 +3,26 @@
build_dir=${1:-build-release} build_dir=${1:-build-release}
build_type=Release build_type=Release
conan_profile=${2:-scwx-linux_gcc-11}
qt_version=6.8.0 qt_version=6.8.0
qt_arch=gcc_64 qt_arch=gcc_64
script_dir="$(dirname "$(readlink -f "$0")")" 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} mkdir -p ${build_dir}
cmake -B ${build_dir} -S . \ cmake -B ${build_dir} -S . \
-DCMAKE_BUILD_TYPE=${build_type} \ -DCMAKE_BUILD_TYPE=${build_type} \
-DCMAKE_CONFIGURATION_TYPES=${build_type} \ -DCMAKE_CONFIGURATION_TYPES=${build_type} \
-DCMAKE_INSTALL_PREFIX=${build_dir}/${build_type}/supercell-wx \ -DCMAKE_INSTALL_PREFIX=${build_dir}/${build_type}/supercell-wx \
-DCMAKE_PREFIX_PATH=/opt/Qt/${qt_version}/${qt_arch} \ -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 -G Ninja

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set_property(DIRECTORY set_property(DIRECTORY
APPEND APPEND

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
project(scwx-test CXX) project(scwx-test CXX)
include(GoogleTest) include(GoogleTest)

View file

@ -0,0 +1,8 @@
[settings]
arch=x86_64
build_type=Release
compiler=clang
compiler.cppstd=20
compiler.libcxx=libstdc++11
compiler.version=17
os=Linux

View file

@ -0,0 +1,8 @@
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=20
compiler.libcxx=libstdc++11
compiler.version=11
os=Linux

View file

@ -0,0 +1,8 @@
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=20
compiler.libcxx=libstdc++11
compiler.version=12
os=Linux

View file

@ -0,0 +1,8 @@
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=20
compiler.libcxx=libstdc++11
compiler.version=13
os=Linux

View file

@ -0,0 +1,8 @@
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=20
compiler.libcxx=libstdc++11
compiler.version=14
os=Linux

View file

@ -0,0 +1,8 @@
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=20
compiler.runtime=dynamic
compiler.version=194
os=Windows

19
tools/scwx_config.cmake Normal file
View file

@ -0,0 +1,19 @@
macro(scwx_output_dirs_setup)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}/Release/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_CURRENT_BINARY_DIR}/MinSizeRel/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}/Debug/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}/Release/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_CURRENT_BINARY_DIR}/MinSizeRel/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}/Debug/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_BINARY_DIR}/Release/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_CURRENT_BINARY_DIR}/MinSizeRel/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_BINARY_DIR}/Debug/lib)
endmacro()

View file

@ -1,4 +1,4 @@
pip install --upgrade "conan<2.0" pip install --upgrade conan
pip install --upgrade geopandas pip install --upgrade geopandas
pip install --upgrade GitPython pip install --upgrade GitPython
conan profile new default --detect conan profile detect -e

View file

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
pip install --upgrade --user "conan<2.0" pip install --upgrade --user conan
pip install --upgrade --user geopandas pip install --upgrade --user geopandas
pip install --upgrade --user GitPython pip install --upgrade --user GitPython
conan profile new default --detect conan profile detect -e

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
set_property(DIRECTORY set_property(DIRECTORY
APPEND APPEND

View file

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.24)
project(scwx-data) project(scwx-data)