aboutsummaryrefslogtreecommitdiff
path: root/ports/vtk/SplitLibraryConfigurations.cmake
blob: fc4d87ec8b55d77a16a2be1815321bd6ad23f452 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

cmake_minimum_required(VERSION 3.2.0)

function(split_library_configurations LIBRARIES OPTIMIZED_OUT_VAR DEBUG_OUT_VAR GENERAL_OUT_VAR)
  set(OPTIMIZED_LIBRARIES)
  set(DEBUG_LIBRARIES)
  set(GENERAL_LIBRARIES)

  set(CURRENT_TYPE)
  foreach(LIBRARY ${LIBRARIES})
    if("${LIBRARY}" STREQUAL "optimized" OR "${LIBRARY}" STREQUAL "debug" OR "${LIBRARY}" STREQUAL "general")
      set(CURRENT_TYPE "${LIBRARY}")
    else()
      if("${CURRENT_TYPE}" STREQUAL "optimized")
        list(APPEND OPTIMIZED_LIBRARIES "${LIBRARY}")
      elseif("${CURRENT_TYPE}" STREQUAL "debug")
        list(APPEND DEBUG_LIBRARIES "${LIBRARY}")
      else()
        list(APPEND GENERAL_LIBRARIES "${LIBRARY}")
      endif()
      set(CURRENT_TYPE)
    endif()
  endforeach()

  set(${OPTIMIZED_OUT_VAR} "${OPTIMIZED_LIBRARIES}" PARENT_SCOPE)
  set(${DEBUG_OUT_VAR} "${DEBUG_LIBRARIES}" PARENT_SCOPE)
  set(${GENERAL_OUT_VAR} "${GENERAL_LIBRARIES}" PARENT_SCOPE)
endfunction()