cmake_minimum_required(VERSION 3.5) PROJECT(Map LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) if(WIN32) MESSAGE(STATUS "WIN32") set(CMAKE_PREFIX_PATH "C:/DevelopEnv/Qt/5.15.2/mingw81_64") set(QT_VERSION "5.15.2") elseif(UNIX) MESSAGE(STATUS "UNIX") set(CMAKE_PREFIX_PATH "/home/tian/Qt5.12.3/5.12.3/gcc_64") # solve program: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' set(QT_VERSION "5.12.3") set(CMAKE_CXX_FLAGS -pthread) endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) # 添加用到的qt库 find_package(Qt5 COMPONENTS Core Gui Widgets Websockets LinguistTools REQUIRED) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) #设置可执行文件生成目录 set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/Libs) #设置链接库生成目录 include_directories(${PROJECT_SOURCE_DIR}/src) FILE(GLOB_RECURSE APP_HEADER ${PROJECT_SOURCE_DIR}/Src/*.h) FILE(GLOB_RECURSE APP_SRC ${PROJECT_SOURCE_DIR}/Src/*.cpp) FILE(GLOB_RECURSE FORMS ${PROJECT_SOURCE_DIR}/Src/*.ui) FILE(GLOB_RECURSE RESOURCE_FILES ${PROJECT_SOURCE_DIR}/resources/*.qrc ${PROJECT_SOURCE_DIR}/resources/*.rc) # 翻译 # 初始化要使用的列表 set(TS_FILES) set(QM_FILES) set(PROJECT_SOURCES ${APP_SRC} ${COMMONMODULE_SRC} ${DATA_SRC} ${DECODEROUTE_SRC} ${FILEOPERATOR_SRC} ${OVERLOAD_SRC} ${PLOT_SRC} ${PYTHONPLOT_SRC} ${MATLABPLOT_SRC} ${UI_SRC} ${FORMS}) # 将要生成的翻译文件添加到列表中 list(APPEND TS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/FlightDataAnalysis_zh.ts) # 设置翻译文件的生成路径,如果不指定就会生成在CMakeFiles的目录里 set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_SOURCE_DIR} ) qt5_create_translation(QM_FILES ${TS_FILES} ${PROJECT_SOURCES}) # 添加更新翻译的目标 add_custom_target(lupdate_task DEPENDS ${TS_FILES}) # 添加发布翻译的目标 add_custom_target(lrelease_task DEPENDS ${QM_FILES}) SET(CMAKE_BUILD_TYPE "Release") add_executable(${PROJECT_NAME} ${APP_SRC} ${APP_HEADER} ${FORMS} ${RESOURCE_FILES} ${TS_FILES}) target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::WebSockets )