Skip to content

Commit 371aaa0

Browse files
committed
Fix conflicts in merging
2 parents 40427ba + d62f0c7 commit 371aaa0

21 files changed

Lines changed: 987 additions & 60043 deletions

.github/workflows/build.yml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@ name: DifferentialExpressionPlugin
22

33
on:
44
push:
5+
branches:
6+
- main
7+
- 'release/**'
8+
- 'feature/**'
59
pull_request:
610
workflow_dispatch:
711

812
env:
913
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
1014
BUILD_TYPE: Release
11-
MACENABLED: ${{ inputs.forceMacBuild }}
1215

1316
# for matrix check https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners
1417
jobs:
@@ -35,7 +38,7 @@ jobs:
3538

3639
steps:
3740
- name: Checkout the source
38-
uses: actions/checkout@v2
41+
uses: actions/checkout@v4
3942
with:
4043
submodules: recursive
4144
ref: ${{ github.event.pull_request.head.ref }}
@@ -51,7 +54,7 @@ jobs:
5154
python-version: "3.11"
5255

5356
- name: Start ssh key agent
54-
uses: webfactory/ssh-agent@v0.7.0
57+
uses: webfactory/ssh-agent@v0.9.0
5558
with:
5659
ssh-private-key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }}
5760

@@ -61,8 +64,9 @@ jobs:
6164
key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }}
6265
known_hosts: github.com AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
6366

67+
# Build the package
6468
- name: Windows build
65-
if: startsWith(runner.os, 'Windows')
69+
if: startsWith(matrix.os, 'windows')
6670
uses: ManiVaultStudio/github-actions/conan_windows_build@main
6771
with:
6872
conan-visual-version: ${{matrix.build-cversion}}
@@ -73,7 +77,7 @@ jobs:
7377
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}
7478
rs_ssh_key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }}
7579

76-
- name: Linux build
80+
- name: Linux build
7781
if: startsWith(matrix.os, 'ubuntu')
7882
uses: ManiVaultStudio/github-actions/conan_linuxmac_build@main
7983
with:
@@ -82,21 +86,23 @@ jobs:
8286
conan-libcxx-version: ${{matrix.build-libcxx}}
8387
conan-build-type: ${{matrix.build-config}}
8488
conan-build-os: ${{matrix.build-os}}
89+
build-arch: ${{matrix.build-arch}}
8590
conan-user: ${{secrets.LKEB_UPLOAD_USER}}
8691
conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
8792
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}
8893
conan-cc: gcc-${{matrix.build-cversion}}
8994
conan-cxx: g++-${{matrix.build-cversion}}
90-
95+
9196
- name: Mac build
92-
if: startsWith(matrix.os, 'macos')
97+
if: startsWith(matrix.os, 'macos')
9398
uses: ManiVaultStudio/github-actions/conan_linuxmac_build@main
9499
with:
95100
conan-compiler: ${{matrix.build-compiler}}
96101
conan-compiler-version: ${{matrix.build-cversion}}
97102
conan-libcxx-version: ${{matrix.build-libcxx}}
98103
conan-build-type: ${{matrix.build-config}}
99104
conan-build-os: ${{matrix.build-os}}
105+
build-arch: ${{matrix.build-arch}}
100106
conan-user: ${{secrets.LKEB_UPLOAD_USER}}
101107
conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
102108
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}

CMakeLists.txt

Lines changed: 22 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,36 @@ cmake_minimum_required(VERSION 3.22)
33
# -----------------------------------------------------------------------------
44
# Differential Expression Plugin
55
# -----------------------------------------------------------------------------
6-
PROJECT("DifferentialExpressionPlugin")
6+
PROJECT("DifferentialExpressionPlugin"
7+
LANGUAGES CXX)
78

89
# -----------------------------------------------------------------------------
910
# CMake Options
1011
# -----------------------------------------------------------------------------
1112
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
1213
set(CMAKE_INCLUDE_CURRENT_DIR ON)
13-
set(CMAKE_AUTORCC ON)
1414
set(CMAKE_AUTOMOC ON)
1515

16-
if(MSVC)
16+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
1717
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DWIN32 /EHsc /MP /permissive- /Zc:__cplusplus")
18-
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:LIBCMT")
19-
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
18+
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
19+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD")
2020
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
21-
endif(MSVC)
22-
23-
# -----------------------------------------------------------------------------
24-
# Set install directory
25-
# -----------------------------------------------------------------------------
26-
# Check if the directory to the ManiVault installation has been provided
27-
# if(NOT DEFINED MV_INSTALL_DIR)
28-
# set(MV_INSTALL_DIR "" CACHE PATH "Directory where ManiVault is installed")
29-
# message(FATAL_ERROR "Please set MV_INSTALL_DIR to the directory where ManiVault is installed")
30-
# endif()
31-
# file(TO_CMAKE_PATH ${MV_INSTALL_DIR} MV_INSTALL_DIR)
21+
endif()
3222

3323
# -----------------------------------------------------------------------------
3424
# Dependencies
3525
# -----------------------------------------------------------------------------
3626
find_package(Qt6 COMPONENTS Widgets WebEngineWidgets REQUIRED)
3727

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

40-
find_package(OpenMP)
30+
find_package(OpenMP REQUIRED)
4131

42-
if(OpenMP_CXX_FOUND)
43-
message(STATUS "Found OpenMP")
44-
endif()
4532

4633
# -----------------------------------------------------------------------------
4734
# Source files
4835
# -----------------------------------------------------------------------------
49-
# Define the plugin sources
5036

5137
set(MODEL
5238
src/TableModel.h
@@ -56,7 +42,6 @@ set(MODEL
5642
)
5743

5844
set(WIDGETS
59-
6045
src/WordWrapHeaderView.h
6146
src/WordWrapHeaderView.cpp
6247
src/TableView.h
@@ -68,6 +53,8 @@ set(WIDGETS
6853
set(UTIL
6954
src/ProgressManager.h
7055
src/ProgressManager.cpp
56+
src/AdditionalSettings.h
57+
src/AdditionalSettings.cpp
7158
)
7259

7360
set(ACTIONS
@@ -79,26 +66,13 @@ set(ACTIONS
7966
set(PLUGIN_SOURCES
8067
src/DifferentialExpressionPlugin.h
8168
src/DifferentialExpressionPlugin.cpp
82-
83-
src/DifferentialExpressionPlugin.json
8469
)
8570

86-
set(QRESOURCES
87-
res/resources.qrc
71+
set(PLUGIN_SOURCES_AUX
72+
PluginInfo.json
8873
)
89-
QT6_ADD_RESOURCES(RESOURCE_FILES ${QRESOURCES})
9074

91-
set(PLUGIN_MOC_HEADERS
92-
src/DifferentialExpressionPlugin.h
93-
94-
src/ButtonProgressBar.h
95-
src/TableModel.h
96-
src/TableSortFilterProxyModel.h
97-
src/TableView.h
98-
src/WordWrapHeaderView.h
99-
)
100-
101-
source_group(Plugin FILES ${PLUGIN_SOURCES})
75+
source_group(Plugin FILES ${PLUGIN_SOURCES} ${PLUGIN_SOURCES_AUX})
10276
source_group(Model FILES ${MODEL})
10377
source_group(Actions FILES ${ACTIONS})
10478
source_group(Widget FILES ${WIDGETS})
@@ -108,19 +82,7 @@ source_group(Util FILES ${UTIL})
10882
# CMake Target
10983
# -----------------------------------------------------------------------------
11084
# Create dynamic library for the plugin
111-
add_library(${PROJECT_NAME} SHARED ${PLUGIN_SOURCES} ${RESOURCE_FILES} ${UTIL} ${WIDGETS} ${MODEL} ${ACTIONS})
112-
113-
# find_package(OpenMP REQUIRED)
114-
# if(OpenMP_FOUND)
115-
# message(STATUS "OpenMP found")
116-
# target_link_libraries(${PROJECT_NAME} PRIVATE OpenMP::OpenMP_CXX)
117-
# target_compile_options(${PROJECT_NAME} PRIVATE ${OpenMP_CXX_FLAGS})
118-
# else()
119-
# message(WARNING "OpenMP not found!")
120-
# endif()
121-
122-
# qt_wrap_cpp(PLUGIN_MOC ${PLUGIN_MOC_HEADERS} TARGET ${PROJECT_NAME})
123-
# target_sources(${PROJECT_NAME} PRIVATE ${PLUGIN_MOC})
85+
add_library(${PROJECT_NAME} SHARED ${PLUGIN_SOURCES} ${PLUGIN_SOURCES_AUX} ${UTIL} ${WIDGETS} ${MODEL} ${ACTIONS})
12486

12587
# -----------------------------------------------------------------------------
12688
# Target include directories
@@ -133,6 +95,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE "${ManiVault_INCLUDE_DIR}")
13395
# -----------------------------------------------------------------------------
13496

13597
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
98+
13699
if(MV_UNITY_BUILD)
137100
set_target_properties(${PROJECT_NAME} PROPERTIES UNITY_BUILD ON)
138101
endif()
@@ -146,17 +109,13 @@ target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::WebEngineWidgets)
146109

147110
target_link_libraries(${PROJECT_NAME} PRIVATE ManiVault::Core)
148111
target_link_libraries(${PROJECT_NAME} PRIVATE ManiVault::PointData)
149-
target_link_libraries(${PROJECT_NAME} PRIVATE ManiVault::ClusterData)
150-
151-
if(OpenMP_CXX_FOUND)
152-
target_link_libraries(${PROJECT_NAME} PRIVATE OpenMP::OpenMP_CXX)
153-
endif()
154112

113+
target_link_libraries(${PROJECT_NAME} PRIVATE OpenMP::OpenMP_CXX)
155114

156115
# -----------------------------------------------------------------------------
157116
# Target installation
158117
# -----------------------------------------------------------------------------
159-
# Install the shared plugin libary to the "Plugins" folder in the ManiVault install directory
118+
# Install the shared plugin library to the "Plugins" folder in the ManiVault install directory
160119
install(TARGETS ${PROJECT_NAME}
161120
RUNTIME DESTINATION Plugins COMPONENT PLUGINS # Windows .dll
162121
LIBRARY DESTINATION Plugins COMPONENT PLUGINS # Linux/Mac .so
@@ -166,20 +125,19 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
166125
COMMAND "${CMAKE_COMMAND}"
167126
--install ${CMAKE_CURRENT_BINARY_DIR}
168127
--config $<CONFIGURATION>
169-
--prefix ${MV_INSTALL_DIR}/$<CONFIGURATION>
128+
--component PLUGINS
129+
--prefix ${ManiVault_INSTALL_DIR}/$<CONFIGURATION>
170130
)
171131

172-
set_target_properties(${PROJECT_NAME}
173-
PROPERTIES
174-
FOLDER ViewPlugins
175-
)
132+
mv_handle_plugin_config(${PROJECT_NAME})
176133

177134

178135
# -----------------------------------------------------------------------------
179136
# Miscellaneous
180137
# -----------------------------------------------------------------------------
181138
# Automatically set the debug environment (command + working directory) for MSVC
182-
if(MSVC)
139+
140+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
183141
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/Debug,$<IF:$<CONFIG:RELWITHDEBINFO>,${ManiVault_INSTALL_DIR}/RelWithDebInfo,${ManiVault_INSTALL_DIR}/Release>>)
184142
set_property(TARGET ${PROJECT_NAME} 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">>)
185143
endif()

0 commit comments

Comments
 (0)