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_${NAME} "./*.cpp") file(GLOB UIS_${NAME} "./*.ui") file(GLOB RES_${NAME} "./*.qrc") qt4_wrap_ui(CUIS_${NAME} ${UIS_${NAME}}) qt4_wrap_cpp(CMOCS_${NAME} ${${_H_OUT}} OPTIONS -nw) qt4_add_resources(CRES_${NAME} ${RES_${NAME}}) message("hs for ${NAME} => ${${_H_OUT}}") message("cmocs for ${NAME} => ${CMOCS_${NAME}}") message("uis for ${NAME} => ${UIS_${NAME}}") message("cuis for ${NAME} => ${CUIS_${NAME}}") message("res for ${NAME} => ${RES_${NAME}}") message("cres for ${NAME} => ${CRES_${NAME}}") message("cpps for ${NAME} => ${CPPS_${NAME}}") set(${_CPP_OUT} ${CPPS_${NAME}}) list(APPEND ${_CPP_OUT} ${CUIS_${NAME}}) list(APPEND ${_CPP_OUT} ${CMOCS_${NAME}}) list(APPEND ${_CPP_OUT} ${CRES_${NAME}}) message("objs for ${NAME} => ${${_CPP_OUT}}") 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()