73 lines
2.5 KiB
CMake
73 lines
2.5 KiB
CMake
cmake_minimum_required(VERSION 3.12)
|
|
|
|
project(PropertyEditor CXX)
|
|
|
|
find_package(Qt6 COMPONENTS Core Widgets Gui QuickWidgets QuickTemplates2 QuickControls2 REQUIRED)
|
|
|
|
qt6_add_resources(QRC_FILE resources.qrc)
|
|
|
|
file(GLOB_RECURSE PROJECT_SOURCE FILES ${CMAKE_CURRENT_SOURCE_DIR}/source/*.h ${CMAKE_CURRENT_SOURCE_DIR}/source/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/resources/*)
|
|
|
|
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${PROJECT_SOURCE})
|
|
|
|
#if(BUILD_SHARED_LIBS)
|
|
# add_library(PropertyEditor SHARED ${PROJECT_SOURCE} ${QRC_FILE})
|
|
# target_compile_definitions(PropertyEditor PRIVATE PROPERTY_EDITOR_SHARED_LIBRARY)
|
|
# message(STATUS "[CMake] Building as SHARED library")
|
|
# message(STATUS "[CMake] Defined: PROPERTY_EDITOR_SHARED_LIBRARY")
|
|
#else()
|
|
# add_library(PropertyEditor STATIC ${PROJECT_SOURCE} ${QRC_FILE})
|
|
# target_compile_definitions(PropertyEditor PUBLIC PROPERTY_EDITOR_STATIC_LIBRARY)
|
|
# message(STATUS "[CMake] Building as STATIC library")
|
|
# message(STATUS "[CMake] Defined: PROPERTY_EDITOR_STATIC_LIBRARY")
|
|
#endif()
|
|
|
|
add_library(PropertyEditor SHARED ${PROJECT_SOURCE} ${QRC_FILE})
|
|
|
|
target_compile_definitions(PropertyEditor
|
|
PUBLIC
|
|
DIAGRAM_DESIGNER_SHARED
|
|
PRIVATE
|
|
DIAGRAM_DESIGNER_EXPORTS
|
|
#QT_NO_KEYWORDS
|
|
)
|
|
|
|
|
|
set_property(TARGET PropertyEditor PROPERTY AUTOMOC ON)
|
|
set_property(TARGET PropertyEditor PROPERTY USE_FOLDERS ON)
|
|
set_property(TARGET PropertyEditor PROPERTY AUTOGEN_SOURCE_GROUP "Generated Files")
|
|
|
|
target_compile_definitions(PropertyEditor PRIVATE PROPERTY_EDITOR_LIBRARY)
|
|
|
|
target_link_libraries(PropertyEditor PUBLIC
|
|
Qt::Gui
|
|
Qt::GuiPrivate
|
|
Qt::Widgets
|
|
Qt::WidgetsPrivate
|
|
Qt::QuickWidgets
|
|
Qt::QuickPrivate
|
|
Qt::QuickTemplates2
|
|
Qt::QuickTemplates2Private
|
|
Qt::QuickControls2
|
|
)
|
|
|
|
target_include_directories(PropertyEditor PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/source/include)
|
|
file(GLOB_RECURSE PUBLIC_FILES LIST_DIRECTORIES TRUE ${CMAKE_CURRENT_SOURCE_DIR}/source/include/*)
|
|
foreach(PUBLIC_FILE ${PUBLIC_FILES})
|
|
if(IS_DIRECTORY ${PUBLIC_FILE})
|
|
target_include_directories(PropertyEditor PRIVATE ${PUBLIC_FILE})
|
|
endif()
|
|
endforeach()
|
|
|
|
set_target_properties(
|
|
PropertyEditor
|
|
PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${dd_PlatformDir}/bin"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${dd_PlatformDir}/lib"
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${dd_PlatformDir}/lib"
|
|
)
|
|
|
|
if(PROJECT_IS_TOP_LEVEL)
|
|
add_subdirectory(example)
|
|
endif()
|