Skip to content

Commit

Permalink
cmake: correct .pc generation for optimized/debug libs.
Browse files Browse the repository at this point in the history
Signed-off-by: Peter Soetens <[email protected]>
  • Loading branch information
Peter Soetens committed Aug 26, 2010
1 parent 34b19e6 commit f07930c
Showing 1 changed file with 39 additions and 15 deletions.
54 changes: 39 additions & 15 deletions config/CreatePCFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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()

0 comments on commit f07930c

Please sign in to comment.