File size: 2,342 Bytes
985c397 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | # SPDX-License-Identifier: LGPL-2.1-or-later
if (PROJECT_NAME)
set(IS_SUB_PROJECT TRUE)
endif()
if (NOT IS_SUB_PROJECT)
project(FreeCAD_widgets)
cmake_minimum_required(VERSION 3.2.0)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt${FREECAD_QT_MAJOR_VERSION} COMPONENTS Core Designer Widgets REQUIRED)
endif()
include_directories(
SYSTEM
${Qt${FREECAD_QT_MAJOR_VERSION}Core_INCLUDE_DIRS}
${Qt${FREECAD_QT_MAJOR_VERSION}Widgets_INCLUDE_DIRS}
${Qt${FREECAD_QT_MAJOR_VERSION}Designer_INCLUDE_DIRS}
)
add_library(FreeCAD_widgets SHARED
customwidgets.cpp
customwidgets.h
plugin.cpp
plugin.h
)
set(FreeCAD_widgets_LIBS
${Qt${FREECAD_QT_MAJOR_VERSION}Widgets_LIBRARIES}
${Qt${FREECAD_QT_MAJOR_VERSION}Designer_LIBRARIES}
)
if(MSVC)
list(APPEND FreeCAD_widgets_LIBS
debug msvcrtd.lib
debug msvcprtd.lib
optimized msvcrt.lib
optimized msvcprt.lib
)
#Universal C runtime introduced in VS 2015 (cl version 19)
if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19"))
list(APPEND FreeCAD_widgets_LIBS
debug vcruntimed.lib
debug ucrtd.lib
debug concrtd.lib
optimized vcruntime.lib
optimized ucrt.lib
optimized concrt.lib
)
endif()
endif()
target_link_libraries(FreeCAD_widgets PRIVATE ${FreeCAD_widgets_LIBS})
target_compile_options(FreeCAD_widgets PRIVATE ${COMPILE_OPTIONS})
# Get the install location of a plugin to determine the path to designer plguins
get_target_property(QMAKE_EXECUTABLE Qt${FREECAD_QT_MAJOR_VERSION}::qmake LOCATION)
execute_process(COMMAND ${QMAKE_EXECUTABLE} "-query" "QT_INSTALL_PLUGINS" RESULT_VARIABLE return_code OUTPUT_VARIABLE DEFAULT_QT_PLUGINS_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
set(DESIGNER_PLUGIN_LOCATION ${DEFAULT_QT_PLUGINS_DIR}/designer CACHE PATH "Path where the plugin will be installed to")
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
RUNTIME DESTINATION ${DESIGNER_PLUGIN_LOCATION}
LIBRARY DESTINATION ${DESIGNER_PLUGIN_LOCATION}
)
|