Tools: [skip ci] allow to build plugin as a top-level project

This commit is contained in:
wmayer
2022-04-06 13:48:33 +02:00
parent bd832490e8
commit adf23ff4ec

View File

@@ -1,11 +1,17 @@
project(FreeCAD_widgets)
cmake_minimum_required(VERSION 3.2.0)
if (PROJECT_NAME)
set(IS_SUB_PROJECT TRUE)
endif()
#set(CMAKE_INCLUDE_CURRENT_DIR ON)
#set(CMAKE_AUTOMOC ON)
if (NOT IS_SUB_PROJECT)
project(FreeCAD_widgets)
cmake_minimum_required(VERSION 3.2.0)
#find_package(Qt5Widgets REQUIRED)
#find_package(Qt5Designer REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Designer REQUIRED)
endif()
include_directories(
${Qt5Core_INCLUDE_DIRS}
@@ -48,17 +54,19 @@ endif()
target_link_libraries(FreeCAD_widgets PRIVATE ${Qt5Widgets_LIBRARIES} ${Qt5Designer_LIBRARIES})
target_compile_options(FreeCAD_widgets PRIVATE ${COMPILE_OPTIONS})
set (libFreeCAD_widgets "libFreeCAD_widgets" PARENT_SCOPE)
# Get the install location of a plugin to determine the path to designer plguins
get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION)
exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PLUGINS" RETURN_VALUE return_code OUTPUT_VARIABLE DEFAULT_QT_PLUGINS_DIR )
set(DESIGNER_PLUGIN_LOCATION ${DEFAULT_QT_PLUGINS_DIR}/designer CACHE FILEPATH "Path where the plugin will be installed to")
#message(STATUS "Plugin will be installed to: ${DESIGNER_PLUGIN_LOCATION}")
# Override the CMake variable
#set(CMAKE_INSTALL_PREFIX ${DESIGNER_PLUGIN_LOCATION} CACHE PATH "Install path to Qt Designer plugins" FORCE)
if (NOT IS_SUB_PROJECT)
message(STATUS "Plugin will be installed to: ${DESIGNER_PLUGIN_LOCATION}")
else()
set (libFreeCAD_widgets "${CMAKE_SHARED_LIBRARY_PREFIX}FreeCAD_widgets${CMAKE_SHARED_LIBRARY_SUFFIX}" PARENT_SCOPE)
endif()
INSTALL(TARGETS FreeCAD_widgets
LIBRARY DESTINATION "$ENV{DESTDIR}${DESIGNER_PLUGIN_LOCATION}"