set(QTVERSION 4) find_package(Qt${QTVERSION} REQUIRED) include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QT_INCLUDES}) macro(qt_project NAME _TYPE _LIBS _H_OUT _CPP_OUT) project(${NAME}) find_package(Qt4 REQUIRED) include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QT_INCLUDES}) file(GLOB ${_H_OUT} "./*.h") file(GLOB CPPS "./*.cpp") file(GLOB UIS "./*.ui") file(GLOB RES "./*.qrc") qt4_wrap_ui(CUIS ${UIS}) qt4_wrap_cpp(CMOCS ${${_H_OUT}} OPTIONS -nw) qt4_add_resources(CRES ${RES}) message("hs for ${NAME} => ${${_H_OUT}}") message("cpps for ${NAME} => ${CPPS}") message("cmocs for ${NAME} => ${CMOCS}") message("uis for ${NAME} => ${UIS}") message("res for ${NAME} => ${RES}") message("objects for ${NAME} => ${${_CPP_OUT}}") set(${_CPP_OUT} ${CPPS}) list(APPEND ${_CPP_OUT} ${CUIS}) list(APPEND ${_CPP_OUT} ${CMOCS}) list(APPEND ${_CPP_OUT} ${CRES}) if ("_${_TYPE}" STREQUAL "_EXE") add_executable(${PROJECT_NAME} ${${_H_OUT}} ${${_CPP_OUT}}) else() if ("_${_TYPE}" STREQUAL "_LIB") add_library(${PROJECT_NAME} SHARED ${${_H_OUT}} ${${_CPP_OUT}}) else() message(FATAL_ERROR "You must specify \"EXE\" ot \"LIB\" by second argument of \"qt_project()\"!") endif() endif() target_link_libraries(${PROJECT_NAME} ${_LIBS}) endmacro()