fix compatibility issues with older cmake versions (2.8.12.1)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2015-12-10 18:38:44 +02:00
parent 2028249452
commit 8e2b0e39fe
2 changed files with 51 additions and 56 deletions

View file

@ -5,89 +5,80 @@ macro(KATIE_RESOURCES RESOURCES)
foreach(tmpres ${RESOURCES} ${ARGN}) foreach(tmpres ${RESOURCES} ${ARGN})
get_filename_component(resource ${tmpres} ABSOLUTE) get_filename_component(resource ${tmpres} ABSOLUTE)
get_source_file_property(skip ${resource} SKIP_RESOURCE) get_source_file_property(skip ${resource} SKIP_RESOURCE)
if(skip) if(NOT skip)
continue() get_filename_component(rscext ${resource} EXT)
endif() get_filename_component(rscname ${resource} NAME_WE)
get_filename_component(rscext ${resource} EXT) get_filename_component(rscpath ${resource} PATH)
get_filename_component(rscname ${resource} NAME_WE) string(REPLACE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" rscpath "${rscpath}")
get_filename_component(rscpath ${resource} PATH) make_directory(${rscpath})
string(REPLACE "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" rscpath "${rscpath}") if("${rscext}" STREQUAL ".ui")
make_directory(${rscpath}) set(rscout ${rscpath}/ui_${rscname}.h)
if("${rscext}" STREQUAL ".ui") add_custom_command(
set(rscout ${rscpath}/ui_${rscname}.h) OUTPUT ${rscout}
add_custom_command( COMMAND ${KATIE_UIC} "${resource}" -o "${rscout}"
OUTPUT ${rscout} MAIN_DEPENDENCY ${resource}
COMMAND ${KATIE_UIC} "${resource}" -o "${rscout}" )
MAIN_DEPENDENCY ${resource} elseif("${rscext}" STREQUAL ".qrc")
) set(rscout ${rscpath}/qrc_${rscname}.cpp)
elseif("${rscext}" STREQUAL ".qrc") add_custom_command(
set(rscout ${rscpath}/qrc_${rscname}.cpp) OUTPUT ${rscout}
add_custom_command( COMMAND ${KATIE_RCC} "${resource}" -o "${rscout}" -name "${rscname}"
OUTPUT ${rscout} MAIN_DEPENDENCY ${resource}
COMMAND ${KATIE_RCC} "${resource}" -o "${rscout}" -name "${rscname}" )
MAIN_DEPENDENCY ${resource} set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
) elseif("${rscext}" MATCHES "(.h|.cpp)")
set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout}) set(rscout ${rscpath}/moc_${rscname}${rscext})
elseif("${rscext}" MATCHES "(.h|.cpp)") get_directory_property(dirdefs COMPILE_DEFINITIONS)
set(rscout ${rscpath}/moc_${rscname}${rscext}) get_directory_property(dirincs INCLUDE_DIRECTORIES)
get_directory_property(dirdefs COMPILE_DEFINITIONS) set(mocargs)
get_directory_property(dirincs INCLUDE_DIRECTORIES) foreach(ddef ${dirdefs})
set(mocargs) # TODO: filter non -D, support -U too
foreach(ddef ${dirdefs}) set(mocargs ${mocargs} -D${ddef})
# TODO: filter non -D, support -U too endforeach()
set(mocargs ${mocargs} -D${ddef}) foreach(incdir ${dirincs})
endforeach() set(mocargs ${mocargs} -I${incdir})
foreach(incdir ${dirincs}) endforeach()
set(mocargs ${mocargs} -I${incdir}) add_custom_command(
endforeach() OUTPUT "${rscout}"
add_custom_command( COMMAND "${KATIE_MOC}" -nw "${resource}" -o "${rscout}" ${mocargs}
OUTPUT "${rscout}" )
COMMAND "${KATIE_MOC}" -nw "${resource}" -o "${rscout}" ${mocargs} set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
) # XXX: this can be troublesome but common sources can cause multiple rules on the same file
set_property(SOURCE ${resource} APPEND PROPERTY OBJECT_DEPENDS ${rscout}) set_source_files_properties(${resource} PROPERTIES SKIP_RESOURCE TRUE)
# XXX: this can be troublesome but common sources can cause multiple rules on the same file endif()
set_source_files_properties(${resource} PROPERTIES SKIP_RESOURCE TRUE)
endif() endif()
endforeach() endforeach()
endmacro() endmacro()
macro(KATIE_RESOURCE RESOURCES OUTNAME) macro(KATIE_RESOURCE SRCDEP RESOURCES OUTNAME)
set(rscout ${CMAKE_CURRENT_BINARY_DIR}/qrc_${OUTNAME}.cpp) set(rscout ${CMAKE_CURRENT_BINARY_DIR}/qrc_${OUTNAME}.cpp)
add_custom_command( add_custom_command(
OUTPUT "${rscout}" OUTPUT "${rscout}"
COMMAND "${KATIE_RCC}" ${RESOURCES} -o "${rscout}" -name "${OUTNAME}" COMMAND "${KATIE_RCC}" ${RESOURCES} -o "${rscout}" -name "${OUTNAME}"
# MAIN_DEPENDENCY ${resource} # MAIN_DEPENDENCY ${resource}
) )
foreach(tmpres ${RESOURCES}) set_property(SOURCE ${SRCDEP} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
set_property(SOURCE ${tmpres} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
endforeach()
endmacro() endmacro()
macro(KATIE_DBUS_ADAPTOR SRCDEP SRCIN SRCOUT) macro(KATIE_DBUS_ADAPTOR SRCDEP SRCIN SRCOUT)
if(${ARG4})
set(dbusxmlargs ${ARG4})
endif()
get_filename_component(resource ${SRCIN} ABSOLUTE) get_filename_component(resource ${SRCIN} ABSOLUTE)
set(rscout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}.h) set(rscout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}.h)
set(mocout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}.moc) set(mocout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}.moc)
add_custom_command( add_custom_command(
OUTPUT "${rscout}" OUTPUT "${rscout}"
COMMAND "${KATIE_QDBUSXML2CPP}" -m "${resource}" -a "${rscout}" -p "${SRCOUT}" ${dbusxmlargs} COMMAND "${KATIE_QDBUSXML2CPP}" -m "${resource}" -a "${rscout}" -p "${SRCOUT}" ${ARGN}
COMMAND "${KATIE_MOC}" -nw "${rscout}" -o "${mocout}" -i COMMAND "${KATIE_MOC}" -nw "${rscout}" -o "${mocout}" -i
) )
set_property(SOURCE ${SRCDEP} APPEND PROPERTY OBJECT_DEPENDS ${rscout}) set_property(SOURCE ${SRCDEP} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
endmacro() endmacro()
macro(KATIE_DBUS_INTERFACE SRCIN) macro(KATIE_DBUS_INTERFACE SRCIN)
if(${ARG2})
set(dbusxmlargs ${ARG2})
endif()
string(REGEX MATCH ".*\\.(.*)\\.xml" ${SRCIN} SRCOUT) string(REGEX MATCH ".*\\.(.*)\\.xml" ${SRCIN} SRCOUT)
string(TOLOWER ${SRCIN} SRCIN) string(TOLOWER ${SRCIN} SRCIN)
set(rscout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}ineterface.h) set(rscout ${CMAKE_CURRENT_BINARY_DIR}/${SRCOUT}ineterface.h)
add_custom_command( add_custom_command(
OUTPUT "${rscout}" OUTPUT "${rscout}"
COMMAND "${KATIE_QDBUSXML2CPP}" -m "${SRCIN}" -a "${rscout}" -p "${SRCOUT}ineterface" ${dbusxmlargs} COMMAND "${KATIE_QDBUSXML2CPP}" -m "${SRCIN}" -a "${rscout}" -p "${SRCOUT}ineterface" ${ARGN}
) )
set_property(SOURCE ${SRCIN} APPEND PROPERTY OBJECT_DEPENDS ${rscout}) set_property(SOURCE ${SRCIN} APPEND PROPERTY OBJECT_DEPENDS ${rscout})
endmacro() endmacro()

View file

@ -37,8 +37,12 @@ set(SHAREDDEVICESKIN_HEADERS
katie_resources(${SHAREDDEVICESKIN_SOURCES}) katie_resources(${SHAREDDEVICESKIN_SOURCES})
katie_resources(${SHAREDDEVICESKIN_HEADERS}) katie_resources(${SHAREDDEVICESKIN_HEADERS})
katie_resource("${SHAREDDEVICESKIN_RESOURCES}" deviceskin) katie_resource(
${CMAKE_SOURCE_DIR}/src/shared/deviceskin/deviceskin.cpp
"${SHAREDDEVICESKIN_RESOURCES}"
deviceskin
)
add_library(shareddeviceskin OBJECT ${SHAREDDEVICESKIN_SOURCES} ${SHAREDDEVICESKIN_HEADERS} ${SHAREDDEVICESKIN_RESOURCES}) add_library(shareddeviceskin OBJECT ${SHAREDDEVICESKIN_SOURCES} ${SHAREDDEVICESKIN_HEADERS})
target_compile_definitions(shareddeviceskin PRIVATE ${SHAREDDEVICESKIN_DEFINITIONS}) target_compile_definitions(shareddeviceskin PRIVATE ${SHAREDDEVICESKIN_DEFINITIONS})
target_include_directories(shareddeviceskin PRIVATE ${SHAREDDEVICESKIN_INCLUDES}) target_include_directories(shareddeviceskin PRIVATE ${SHAREDDEVICESKIN_INCLUDES})