首页 > 代码库 > QT static link App cmake CMakeLists.txt

QT static link App cmake CMakeLists.txt

project(ovw)

cmake_minimum_required(VERSION 2.8)


# turn on show compile cmd line

SET( CMAKE_VERBOSE_MAKEFILE on )


SET(CMAKE_PREFIX_PATH "F:/Qt5.3.1/win32_static_2013")


# Set source dir of cpp

SET(SRC_DIR ${PROJECT_SOURCE_DIR}/..)


SET(QTLIB_DIR "F:/Qt5.3.1/win32_static_2013")


#to set compiler flag


if(WIN32)

        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ")

else()

        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -D_OS_LINUX_")

        #to link static

        SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")

        #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall")

endif()



#create qtplugin file 

SET(plugin_cpp "${CMAKE_BINARY_DIR}/qt_plugin_moc.cpp")


FILE(WRITE ${plugin_cpp} " #include <QtPlugin>\n")

FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)\n")


#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(AccessibleFactory)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QDDSPlugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QICNSPlugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QICOPlugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QJp2Plugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QMngPlugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QTgaPlugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QTiffPlugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QWbmpPlugin)\n")

#FILE(APPEND ${plugin_cpp} "Q_IMPORT_PLUGIN(QWebpPlugin)\n")







#Set Output dir

SET(EXECUTABLE_OUTPUT_PATH ${SRC_DIR}/bin)

SET(LIBRARY_OUTPUT_PATH ${SRC_DIR}/bin)


#Set Include dir

INCLUDE_DIRECTORIES(

    ${SRC_DIR}

 #   ${SRC_DIR}/Controls

#    ${SRC_DIR}/rapidxml

    )


set(CMAKE_INCLUDE_CURRENT_DIR ON)

# Instruct CMake to run moc automatically when needed.

set(CMAKE_AUTOMOC ON)


cmake_policy(SET CMP0020 NEW) # no need to set link to qtmain.lib


find_package(Qt5Widgets REQUIRED)


# The Qt5Widgets_INCLUDES also includes the include directories for

# dependencies QtCore and QtGui

include_directories(${Qt5Widgets_INCLUDES})


# We need add -DQT_WIDGETS_LIB when using QtWidgets in Qt 5.

add_definitions(${Qt5Widgets_DEFINITIONS})


# Executables fail to build with Qt 5 in the default configuration

# without -fPIE. We add that here.

set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")


aux_source_directory(${SRC_DIR} SRC_LIST)

#aux_source_directory(${SRC_DIR}/Controls Control_LIST)


qt5_wrap_ui(ui_FILES ${SRC_DIR}/MainWindow.ui)

#QT5_ADD_RESOURCES(RESOURCES ${SRC_DIR}/pic.qrc)


#LINK_DIRECTORIES(${QTLIB_DIR}/lib)

LINK_DIRECTORIES(${QTLIB_DIR}/plugins/platforms)

LINK_DIRECTORIES(${QTLIB_DIR}/lib)

LINK_DIRECTORIES(${QTLIB_DIR}/plugins/imageformats)

LINK_DIRECTORIES(${QTLIB_DIR}/plugins/accessible)


#add_executable(${PROJECT_NAME} ${SRC_LIST} ${Control_LIST} ${RESOURCES})

add_executable(${PROJECT_NAME} WIN32 ${SRC_LIST} ${plugin_cpp} ${ui_FILES} )


# Use the Widgets module from Qt 5

qt5_use_modules(${PROJECT_NAME} Widgets)


set(QT5_LIBS Ws2_32 opengl32 imm32 winmm Qt5PlatformSupportd qwindowsd qtaccessiblewidgetsd)


target_link_libraries(${PROJECT_NAME} ${QT5_LIBS})