summaryrefslogtreecommitdiffstats
path: root/cmake/scripts/common/DependencyOptions.cmake
blob: a45dcec55306cfdce93d72cee99f131dccd53e0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Set Option varname based on USE_INTERNAL_LIBS status
#
# Alternative to cmake_dependent_option
# cmake_dependent_option is restrictive, in the fact that we cannot override the 
# set option value as a cache variable (-Dvar=foo)
#
# This allows us to have the same outcome as cmake_dependent_option whilst still allowing
# user to override for platforms that would normally be forced ON
#
function(dependent_option varname optionmessage)

  # If varname already set, accept that, as it was provided by the user
  if(NOT DEFINED ${varname})
    # Generally we only define USE_INTERNAL_LIBS as the exception for platforms
    # we explicitly dont want to build internal libs (eg Linux/Freebsd)
    if(NOT DEFINED USE_INTERNAL_LIBS)
      option(${varname} ${optionmessage} ON)
    else()
      # Respect Value of USE_INTERNAL_LIBS for ON/OFF
      option(${varname} ${optionmessage} ${USE_INTERNAL_LIBS})
    endif()
  endif()
endfunction()