Files
qad/QtProject.cmake

39 lines
1.5 KiB
CMake

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()