diff --git a/config/CreatePCFlags.cmake b/config/CreatePCFlags.cmake index 9adf6ba68..ea957be15 100644 --- a/config/CreatePCFlags.cmake +++ b/config/CreatePCFlags.cmake @@ -11,22 +11,46 @@ macro( create_pc_flags CM_DEFINES CM_INCLUDES CM_LIBRARIES PC_DEFINES PC_INCLUDE set(${PC_INCLUDES} "") set(${PC_LIBRARIES} "") - #MESSAGE("Got cmlibs: ${CM_LIBRARIES}") - #MESSAGE("Got cmcflags: ${CM_INCLUDES}") - #MESSAGE("Got cmdefs: ${CM_DEFINES}") + # MESSAGE("Got cmlibs: ${CM_LIBRARIES}") + # MESSAGE("Got cmcflags: ${CM_INCLUDES}") + # MESSAGE("Got cmdefs: ${CM_DEFINES}") - foreach( ITEM ${CM_LIBRARIES}) + # WARNING: WE HAVE TO STORE THE MACRO ARG IN A TEMP VAR, OTHERWISE, the while() is always false ! + set(FOO ${CM_LIBRARIES}) + + while( FOO ) + list(GET FOO 0 ITEM) + list(REMOVE_AT FOO 0) + #message("item: ${ITEM}") if( ITEM ) - get_filename_component(PC_LIBPATH ${ITEM} PATH) - get_filename_component(_PC_LIB ${ITEM} NAME_WE) - string(REGEX REPLACE "^lib" "" PC_LIB ${_PC_LIB} ) - if (PC_LIBPATH AND NOT ${PC_LIBPATH} STREQUAL "/usr/lib" ) - set( ${PC_LIBRARIES} "${${PC_LIBRARIES}} -L${PC_LIBPATH} -l${PC_LIB}") - else() - set( ${PC_LIBRARIES} "${${PC_LIBRARIES}} -l${PC_LIB}") + if( ITEM STREQUAL "debug") + if( CMAKE_BUILD_TYPE STREQUAL "Debug" ) + list(GET FOO 0 ITEM) + list(REMOVE_AT FOO 0) + else() + list(REMOVE_AT FOO 0) + set(ITEM "") + endif() + endif() + if( ITEM STREQUAL "optimized") + if( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" ) + list(GET FOO 0 ITEM) + list(REMOVE_AT FOO 0) + else() + list(REMOVE_AT FOO 0) + set(ITEM "") + endif() + endif() + if( ITEM ) + get_filename_component(PC_LIBPATH ${ITEM} PATH) + if (PC_LIBPATH) + set( ${PC_LIBRARIES} "${${PC_LIBRARIES}} ${ITEM}") + else() + set( ${PC_LIBRARIES} "${${PC_LIBRARIES}} -l${ITEM}") + endif() endif() endif() - endforeach() + endwhile() foreach( ITEM ${CM_INCLUDES}) if( ITEM AND NOT ${ITEM} STREQUAL "/usr/include") @@ -40,7 +64,7 @@ macro( create_pc_flags CM_DEFINES CM_INCLUDES CM_LIBRARIES PC_DEFINES PC_INCLUDE endif() endforeach() - #MESSAGE("Computed pclibs: ${${PC_LIBRARIES}}") - #MESSAGE("Computed pccflags: ${${PC_INCLUDES}}") - #MESSAGE("Computed pcdefs: ${${PC_DEFINES}}") + # MESSAGE("Computed pclibs: ${${PC_LIBRARIES}}") + # MESSAGE("Computed pccflags: ${${PC_INCLUDES}}") + # MESSAGE("Computed pcdefs: ${${PC_DEFINES}}") endmacro()