Skip to content

Commit 0d2f04a

Browse files
authored
Update to Qt 6.8 (#30)
* Add build arch * Update cmake * Update CI (relwithdebinfo) * Fix tbb install on linux * Add lkeb artifactory certificate on linux * remove unused files * No need for these flags * No need for duplicate cpp version setting
1 parent 50b97cd commit 0d2f04a

9 files changed

Lines changed: 90 additions & 72 deletions

.github/workflows/build.yml

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@ on:
44
push:
55
pull_request:
66
workflow_dispatch:
7-
inputs:
8-
forceMacBuild:
9-
description: 'If set true override the ENABLE_MACOS_BUILD to force a build'
10-
type: boolean
11-
default: false
127

138
env:
149
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
@@ -95,34 +90,23 @@ jobs:
9590
conan-libcxx-version: ${{matrix.build-libcxx}}
9691
conan-build-type: ${{matrix.build-config}}
9792
conan-build-os: ${{matrix.build-os}}
93+
build-arch: ${{matrix.build-arch}}
9894
conan-user: ${{secrets.LKEB_UPLOAD_USER}}
9995
conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
10096
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}
10197
conan-cc: gcc-${{matrix.build-cversion}}
10298
conan-cxx: g++-${{matrix.build-cversion}}
10399

104100
- name: Mac build
105-
if: startsWith(matrix.os, 'macos') && (env.MACENABLED == 'true' || vars.ENABLE_MACOS_BUILD == 'True')
101+
if: startsWith(matrix.os, 'macos')
106102
uses: ManiVaultStudio/github-actions/conan_linuxmac_build@main
107103
with:
108104
conan-compiler: ${{matrix.build-compiler}}
109105
conan-compiler-version: ${{matrix.build-cversion}}
110106
conan-libcxx-version: ${{matrix.build-libcxx}}
111107
conan-build-type: ${{matrix.build-config}}
112108
conan-build-os: ${{matrix.build-os}}
109+
build-arch: ${{matrix.build-arch}}
113110
conan-user: ${{secrets.LKEB_UPLOAD_USER}}
114111
conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
115112
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}
116-
117-
# - name: Mac M1 build self-hosted
118-
# if: "contains(matrix.os, 'macOS') && contains(matrix.os, 'self-hosted') && contains(matrix.os, 'X64') "
119-
# uses: ManiVaultStudio/github-actions/conan_selfhosted_m1_build@main
120-
# with:
121-
# conan-compiler: ${{matrix.build-compiler}}
122-
# conan-compiler-version: ${{matrix.build-cversion}}
123-
# conan-libcxx-version: ${{matrix.build-libcxx}}
124-
# conan-build-type: ${{matrix.build-config}}
125-
# conan-build-os: ${{matrix.build-os}}
126-
# conan-user: ${{secrets.LKEB_UPLOAD_USER}}
127-
# conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
128-
# conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}

CMakeLists.txt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ endif()
3535
find_package(Qt6 COMPONENTS Widgets WebEngineWidgets REQUIRED)
3636
find_package(OpenMP REQUIRED)
3737

38-
find_package(ManiVault COMPONENTS Core PointData ClusterData CONFIG)
38+
find_package(ManiVault COMPONENTS Core PointData ClusterData CONFIG QUIET)
3939

4040
if(MV_H5_USE_VCPKG)
4141
find_package(hdf5 CONFIG REQUIRED COMPONENTS CXX HL)
@@ -138,10 +138,8 @@ SET_PROPERTY(TARGET ${TOMEPROJECT} PROPERTY FOLDER ${LOADERFOLDER})
138138
function(SetBuildSettings PROJNAME)
139139

140140
target_link_libraries(${PROJNAME} PRIVATE OpenMP::OpenMP_CXX)
141-
target_compile_options(${PROJNAME} PRIVATE ${OpenMP_CXX_FLAGS})
142141

143-
target_compile_features(${PROJNAME} PRIVATE cxx_std_17)
144-
set_target_properties(${PROJNAME} PROPERTIES CXX_STANDARD 17)
142+
target_compile_features(${PROJNAME} PRIVATE cxx_std_20)
145143
target_compile_definitions(${PROJNAME} PRIVATE BIOVAULT_BFLOAT16_CONVERTING_CONSTRUCTORS)
146144

147145
if(MV_H5_USE_VCPKG)
@@ -212,6 +210,12 @@ SetPluginSettings(${TOMEPROJECT})
212210
# -----------------------------------------------------------------------------
213211
# Automatically set the debug environment (command + working directory) for MSVC
214212
if(MSVC)
215-
set_property(TARGET ${H510XPROJECT} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/debug,${ManiVault_INSTALL_DIR}/release>)
216-
set_property(TARGET ${H510XPROJECT} PROPERTY VS_DEBUGGER_COMMAND $<IF:$<CONFIG:DEBUG>,"${ManiVault_INSTALL_DIR}/debug/ManiVault Studio.exe","${ManiVault_INSTALL_DIR}/release/ManiVault Studio.exe">)
213+
set_property(TARGET ${H5ADPROJECT} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/Debug,$<IF:$<CONFIG:RELWITHDEBINFO>,${ManiVault_INSTALL_DIR}/RelWithDebInfo,${ManiVault_INSTALL_DIR}/Release>>)
214+
set_property(TARGET ${H5ADPROJECT} PROPERTY VS_DEBUGGER_COMMAND $<IF:$<CONFIG:DEBUG>,"${ManiVault_INSTALL_DIR}/Debug/ManiVault Studio.exe",$<IF:$<CONFIG:RELWITHDEBINFO>,"${ManiVault_INSTALL_DIR}/RelWithDebInfo/ManiVault Studio.exe","${ManiVault_INSTALL_DIR}/Release/ManiVault Studio.exe">>)
215+
216+
set_property(TARGET ${H510XPROJECT} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/Debug,$<IF:$<CONFIG:RELWITHDEBINFO>,${ManiVault_INSTALL_DIR}/RelWithDebInfo,${ManiVault_INSTALL_DIR}/Release>>)
217+
set_property(TARGET ${H510XPROJECT} PROPERTY VS_DEBUGGER_COMMAND $<IF:$<CONFIG:DEBUG>,"${ManiVault_INSTALL_DIR}/Debug/ManiVault Studio.exe",$<IF:$<CONFIG:RELWITHDEBINFO>,"${ManiVault_INSTALL_DIR}/RelWithDebInfo/ManiVault Studio.exe","${ManiVault_INSTALL_DIR}/Release/ManiVault Studio.exe">>)
218+
219+
set_property(TARGET ${TOMEPROJECT} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/Debug,$<IF:$<CONFIG:RELWITHDEBINFO>,${ManiVault_INSTALL_DIR}/RelWithDebInfo,${ManiVault_INSTALL_DIR}/Release>>)
220+
set_property(TARGET ${TOMEPROJECT} PROPERTY VS_DEBUGGER_COMMAND $<IF:$<CONFIG:DEBUG>,"${ManiVault_INSTALL_DIR}/Debug/ManiVault Studio.exe",$<IF:$<CONFIG:RELWITHDEBINFO>,"${ManiVault_INSTALL_DIR}/RelWithDebInfo/ManiVault Studio.exe","${ManiVault_INSTALL_DIR}/Release/ManiVault Studio.exe">>)
217221
endif()

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ This repo currently builds three plugins:
88

99
## HDF5 dependency
1010
By default, a pre-built HDF5 library will be downloaded from the LKEB artifactory during cmake's configuration step.
11+
On Linux you'll probably need to add a certificate for this to work: `sudo ./cmake/install-lkeb-artifactory-cert.sh`.
1112

1213
You can also install HDF5 with [vcpkg](https://github.com/microsoft/vcpkg) and use `-DCMAKE_TOOLCHAIN_FILE="[YOURPATHTO]/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows-static-md` to point to your vcpkg installation:
1314
```bash

cmake/MSVCSettings.cmake

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
if(MSVC)
2-
3-
42
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DWIN32 /EHsc /MP /bigobj /permissive- /Zc:__cplusplus")
5-
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:LIBCMT")
63
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
4+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD")
5+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
76

87
set(CMAKE_CXX_FLAGS_RELEASE_INIT "/GL")
98
set(CMAKE_SHARED_LINKER_FLAGS_INIT "/LTCG:PGOptimize")

cmake/aql_multi.json.in

Lines changed: 0 additions & 14 deletions
This file was deleted.

cmake/aql_single.json.in

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env bash
2+
3+
if [[ $EUID -ne 0 ]]; then
4+
echo "This script must be run as root. Use: sudo $0"
5+
exit 1
6+
fi
7+
8+
echo "Installing lkeb-artifactory certificate"
9+
cp cmake/lkeb-artifactory-lumc-nl-chain.crt /usr/local/share/ca-certificates/
10+
update-ca-certificates
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIIdzCCBl+gAwIBAgIRAOZvd0XD11TLfjjp3Zb9VHkwDQYJKoZIhvcNAQEMBQAw
3+
RDELMAkGA1UEBhMCTkwxGTAXBgNVBAoTEEdFQU5UIFZlcmVuaWdpbmcxGjAYBgNV
4+
BAMTEUdFQU5UIE9WIFJTQSBDQSA0MB4XDTI0MTEyODAwMDAwMFoXDTI1MTEyODIz
5+
NTk1OVowezELMAkGA1UEBhMCTkwxFTATBgNVBAgTDFp1aWQtSG9sbGFuZDEyMDAG
6+
A1UEChMpTGVpZHMgVW5pdmVyc2l0YWlyIE1lZGlzY2ggQ2VudHJ1bSAoTFVNQykx
7+
ITAfBgNVBAMTGGxrZWItYXJ0aWZhY3RvcnkubHVtYy5ubDCCAiIwDQYJKoZIhvcN
8+
AQEBBQADggIPADCCAgoCggIBAMJisBHUXEOCpnksWmRI/gccmvi4W9A8XAyUtUaY
9+
3gs2LJ+ED2IaC0WBwMSwljd5WO9k3y9yNrtRBQY5z2sMtcGRbO0Z3kULLS1Ddi8q
10+
UX0phKg6YJfNFz9diQEiWB3ZEAn/3KXc32IeMF+ugodT4EfyxeS82d1MKRL5SexX
11+
+EEMn3ITdQtBkghrNgXcdiLxv4vOleYhWxzpWVRVuqO6zhE+aVVJPHrq5JsD9+YQ
12+
2fwojmXyTUa6xuRO7Hxf21aEWb5SeRPWskAIaT4Xx1KPKio9FbUJZm7PbP10PEiM
13+
R6L64iL6pkpRzpwLdGkHCFJxBpwVlCPJgtq69qcif++8IKyyrO6WmPqCcp5XlNE1
14+
z58TNRiZ6+hc5EsvYjEPKIxnXz+J224bMqqEqugbqMCKzAS6sQdRqU+JvSu9oOhJ
15+
xbFyHssc+5gtSE3cFmKfvXDM4nxoOy2NfRDTyn8Og+fmFgXco9IeV+bY2xM5f3dD
16+
puFnmZCeaNWwivyBPcL/YgxGNt4O8oAXkGLO7mQWPWT3jjUmlz+mN301O2RnZHb6
17+
zW2dLTsI5rGrIrmTsRd91cDH3OddH5A55WzErW6uXi1Rkuc7HSx/cZVAt63JOONZ
18+
6I1VmPPbzdBJsBPOz2gO4PpEKtqATP8Q61TqjmL2ZpMIzfNSNOwVMU5jbNu7UifR
19+
O1r5AgMBAAGjggMrMIIDJzAfBgNVHSMEGDAWgBRvHTVJEGwy+lmgnryK6B+VvnF6
20+
DDAdBgNVHQ4EFgQUz6SdzuGNWTKXGWHOyOM2zdlK0u4wDgYDVR0PAQH/BAQDAgWg
21+
MAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEkG
22+
A1UdIARCMEAwNAYLKwYBBAGyMQECAk8wJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9z
23+
ZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQICMD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6
24+
Ly9HRUFOVC5jcmwuc2VjdGlnby5jb20vR0VBTlRPVlJTQUNBNC5jcmwwdQYIKwYB
25+
BQUHAQEEaTBnMDoGCCsGAQUFBzAChi5odHRwOi8vR0VBTlQuY3J0LnNlY3RpZ28u
26+
Y29tL0dFQU5UT1ZSU0FDQTQuY3J0MCkGCCsGAQUFBzABhh1odHRwOi8vR0VBTlQu
27+
b2NzcC5zZWN0aWdvLmNvbTCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHYA3dzK
28+
NJXX4RYF55Uy+sef+D0cUN/bADoUEnYKLKy7yCoAAAGTcm6PlwAABAMARzBFAiBI
29+
6SErKAddxa4hHWedOFhpZtmAR4elMtpx6cgci74iwgIhAJV7nGtkoS1N3Uo2YULP
30+
bb2qZ2HdQltdDeJO+Zge+s0EAHYAzPsPaoVxCWX+lZtTzumyfCLphVwNl422qX5U
31+
wP5MDbAAAAGTcm6PmwAABAMARzBFAiBBb9ZrVsSzjGoBWdZwdCqmg43v5R/ok4hQ
32+
qHC+mrJLhQIhAMZOI12/hoztsV+czDPUK3be8gUjVhQPuHokuu2p3LidAHYAEvFO
33+
NL1TckyEBhnDjz96E/jntWKHiJxtMAWE6+WGJjoAAAGTcm6PcAAABAMARzBFAiEA
34+
rthRIe9boqO39Jic4tIUBfkFiJoa6QAbnwQEgmIavbcCIFtJ4b2MmVYl3GYVzhTX
35+
I1CajdS6wEOw8Z8vOV34ZhM0MCMGA1UdEQQcMBqCGGxrZWItYXJ0aWZhY3Rvcnku
36+
bHVtYy5ubDANBgkqhkiG9w0BAQwFAAOCAgEAbPopwBlVcgSSiSFdr446AukVfoDD
37+
52SI2E0NQfULk60kX7XDmahIHl8NhKo0yFZQD53MPtYRRf1bhv6Di4M8StVGbfKz
38+
EYjX8kcN8e5QM0tyUDQVQnKTVdxrZ0tMPCtT7Mm+oImWDyW68CvHRI48xhFSwNku
39+
vCdSEVhTJeCNE0egmiafF9mTbOM8RZ1PGMSEh7fMLss/ETb0RcIGTuY8J0x3/W02
40+
3DEx9sWofzCt7yip9TzwVgcaDzWeIUvUnXUwyLYYMvJYg3iEqXlIN4WJJVpr28vf
41+
7Yj2BfoO+pFKFimG+j/cDhKdjHOyL1XIiZgb+ORKM867rMR8a2hT2ChyobG8Kxh6
42+
PSyuF2BqP7h9SacXG/RVOYDesEF2+pPqfNsnqL+Fue4wscQYGFXjsrXUF+yyrJBu
43+
VFZVoxvpFvgoYKnLzwluCOCGPFTR85WT9Ypmmk4a0jhVCv4Bchs5QxZumnD1qVIM
44+
ZVCDp82PREUrXpLQNgBtA5FclQFqPR88/1HixNDNRQQSUXuCe+Q+ZzoKAbCBhCMR
45+
1TveaZ+TY2cxORH7Ka9SNofru4rTd1K3w1Tys7fg3CPEVGsEwnMtlrb1vQ79ur5o
46+
nd4BE3tXiWhrT1OioAEGKf7P12n4/rTYXf/1ckSCp671rxkqzNp3tSNuQJnHwcb3
47+
YGFRqzPjkZY9DEA=
48+
-----END CERTIFICATE-----

conanfile.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
class HDF5LoaderConan(ConanFile):
1111
"""Class to package the HDF5Loader plugin using conan
1212
13-
Packages both RELEASE and DEBUG.
13+
Packages both RELEASE and RELWITHDEBINFO.
1414
Uses rules_support (github.com/ManiVaultStudio/rulessupport) to derive
1515
versioninfo based on the branch naming convention
1616
as described in https://github.com/ManiVaultStudio/core/wiki/Branch-naming-rules
@@ -75,7 +75,12 @@ def system_requirements(self):
7575
proc = subprocess.run("brew --prefix libomp", shell=True, capture_output=True)
7676
subprocess.run(f"ln {proc.stdout.decode('UTF-8').strip()}/lib/libomp.dylib /usr/local/lib/libomp.dylib", shell=True)
7777
if os_info.is_linux:
78-
self.run("sudo apt update && sudo apt install -y libtbb2-dev")
78+
cwd = pathlib.Path().resolve()
79+
self.run("sudo apt update && sudo apt install -y libtbb-dev")
80+
print(f"current working directory: {cwd}")
81+
self.run("sudo ls cmake/")
82+
self.run("sudo cp cmake/lkeb-artifactory-lumc-nl-chain.crt /usr/local/share/ca-certificates/")
83+
self.run("sudo update-ca-certificates")
7984

8085
def config_options(self):
8186
if self.settings.os == "Windows":
@@ -96,13 +101,8 @@ def generate(self):
96101
qt_path = pathlib.Path(self.deps_cpp_info["qt"].rootpath)
97102
qt_cfg = list(qt_path.glob("**/Qt6Config.cmake"))[0]
98103
qt_dir = qt_cfg.parents[0].as_posix()
99-
qt_root = qt_cfg.parents[3].as_posix()
100104

101-
# for Qt >= 6.4.2
102-
#tc.variables["Qt6_DIR"] = qt_dir
103-
104-
# for Qt < 6.4.2
105-
tc.variables["Qt6_ROOT"] = qt_root
105+
tc.variables["Qt6_DIR"] = qt_dir
106106

107107
# Use the ManiVault .cmake file to find ManiVault with find_package
108108
mv_core_root = self.deps_cpp_info["hdps-core"].rootpath
@@ -130,12 +130,12 @@ def build(self):
130130
print("Build OS is: ", self.settings.os)
131131

132132
cmake = self._configure_cmake()
133-
cmake.build(build_type="Debug")
133+
cmake.build(build_type="RelWithDebInfo")
134134
cmake.build(build_type="Release")
135135

136136
def package(self):
137137
package_dir = pathlib.Path(self.build_folder, "package")
138-
debug_dir = package_dir / "Debug"
138+
relWithDebInfo_dir = package_dir / "RelWithDebInfo"
139139
release_dir = package_dir / "Release"
140140
print("Packaging install dir: ", package_dir)
141141
subprocess.run(
@@ -144,9 +144,9 @@ def package(self):
144144
"--install",
145145
self.build_folder,
146146
"--config",
147-
"Debug",
147+
"RelWithDebInfo",
148148
"--prefix",
149-
debug_dir,
149+
relWithDebInfo_dir,
150150
]
151151
)
152152
subprocess.run(
@@ -163,9 +163,9 @@ def package(self):
163163
self.copy(pattern="*", src=package_dir)
164164

165165
def package_info(self):
166-
self.cpp_info.debug.libdirs = ["Debug/lib"]
167-
self.cpp_info.debug.bindirs = ["Debug/Plugins", "Debug"]
168-
self.cpp_info.debug.includedirs = ["Debug/include", "Debug"]
166+
self.cpp_info.relwithdebinfo.libdirs = ["RelWithDebInfo/lib"]
167+
self.cpp_info.relwithdebinfo.bindirs = ["RelWithDebInfo/Plugins", "RelWithDebInfo"]
168+
self.cpp_info.relwithdebinfo.includedirs = ["RelWithDebInfo/include", "RelWithDebInfo"]
169169
self.cpp_info.release.libdirs = ["Release/lib"]
170170
self.cpp_info.release.bindirs = ["Release/Plugins", "Release"]
171-
self.cpp_info.release.includedirs = ["Release/include", "Release"]
171+
self.cpp_info.release.includedirs = ["Release/include", "Release"]

0 commit comments

Comments
 (0)