PowerDesignerX/CMakeLists.txt

92 lines
2.6 KiB
CMake
Raw Normal View History

2024-07-18 12:18:18 +08:00
cmake_minimum_required(VERSION 3.5)
2024-07-18 16:27:47 +08:00
project(PowerDesigner LANGUAGES CXX VERSION 1.0)
2024-07-22 17:39:30 +08:00
set(ADS_VERSION 4.3.1)
2024-07-18 12:18:18 +08:00
add_subdirectory(QtADS)
2024-07-22 20:52:45 +08:00
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2024-07-24 10:15:29 +08:00
#默认ui文件要和.h头文件在一个目录若不在一个目录需要指定其所在目录
set(CMAKE_AUTOUIC_SEARCH_PATHS "ui")
2024-07-22 20:52:45 +08:00
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
set(pd_PlatformDir "x86")
else()
if(DEFINED CMAKE_SYSTEM_PROCESSOR)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64")
set(pd_PlatformDir "x64")
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
set(pd_PlatformDir "aarch64")
else()
set(pd_PlatformDir "x64")
endif()
else()
set(pd_PlatformDir "x64")
endif()
endif()
2024-07-24 10:15:29 +08:00
set(H_HEADER_FILES
include/mainwindow.h
2024-07-22 20:52:45 +08:00
)
2024-07-24 10:15:29 +08:00
set(CPP_SOURCE_FILES
source/main.cpp
source/mainwindow.cpp
)
set(UI_FILES
ui/mainwindow.ui
)
# 包含源文件目录
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
qt_add_executable(PowerDesigner
MANUAL_FINALIZATION
${H_HEADER_FILES}
${CPP_SOURCE_FILES}
${UI_FILES}
resource/PowerDesigner.qrc
)
else()
if(ANDROID)
add_library(PowerDesigner SHARED
${H_HEADER_FILES}
${CPP_SOURCE_FILES}
${UI_FILES}
resource/PowerDesigner.qrc
)
else()
add_executable(PowerDesigner WIN32
${H_HEADER_FILES}
${CPP_SOURCE_FILES}
${UI_FILES}
resource/PowerDesigner.qrc
)
endif()
endif()
include_directories(include)
2024-07-22 20:52:45 +08:00
target_include_directories(PowerDesigner PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
target_link_libraries(PowerDesigner PRIVATE qt${QT_VERSION_MAJOR}advanceddocking)
target_link_libraries(PowerDesigner PUBLIC Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::Widgets)
set_target_properties(PowerDesigner PROPERTIES
AUTOMOC ON
AUTORCC ON
AUTOUIC ON
CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF
VERSION 1.0
EXPORT_NAME "PowerDesigner with Qt Advanced Docking System"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${pd_PlatformDir}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${pd_PlatformDir}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${pd_PlatformDir}/bin"
)