From f02c85032e0321afe37f2f7705853a8a71c7b372 Mon Sep 17 00:00:00 2001
From: Hadrien Grasland <grasland@lal.in2p3.fr>
Date: Tue, 11 Sep 2018 12:03:59 +0200
Subject: [PATCH] Support all CMake booleans

---
 cmake/DD4hepBuild.cmake | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index 797a6095f..1605e96ff 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -452,9 +452,10 @@ function ( dd4hep_find_package name found )
   elseif ( found_package EQUAL -1 AND "${ARG_TYPE}" STREQUAL "INTERNAL" )
     set_property( GLOBAL PROPERTY DD4HEP_USE_${NAME} "OFF" )
     set ( ${found} "OFF" PARENT_SCOPE )
-  elseif ( "${DD4HEP_USE_${name}}" STREQUAL "OFF" OR "${DD4HEP_USE_${NAME}}" STREQUAL "OFF" )
+  elseif ( ( DEFINED DD4HEP_USE_${name} AND NOT "${DD4HEP_USE_${name}}" ) OR
+           ( DEFINED DD4HEP_USE_${NAME} AND NOT "${DD4HEP_USE_${NAME}}" ) )
     set ( ${found} "OFF" PARENT_SCOPE )
-  elseif ( "${use_pkg}" STREQUAL "OFF" )
+  elseif ( DEFINED use_pkg AND NOT "${use_pkg}" )
     set ( ${found} "OFF" PARENT_SCOPE )
   else()
     #
@@ -481,7 +482,7 @@ function ( dd4hep_find_package name found )
     else()
       dd4hep_find_packageEx( ${name} ${ARGN} )
       dd4hep_debug("DD4hep_find_package: DD4HEP_USE_${name}: ${DD4HEP_USE_${NAME}} Exists: ${${NAME}_EXISTS} ARGS:${arguments}")
-      if ( "${${NAME}_EXISTS}" STREQUAL "ON" )
+      if ( "${${NAME}_EXISTS}" )
 	dd4hep_debug( "DD4hep_find_package ${NAME} Incs: ${incs}" )
 	dd4hep_debug( "DD4hep_find_package ${NAME} Libs: ${libs}" )
 	set_property ( GLOBAL PROPERTY ${NAME}_COMPONENTS   ${arguments} )
@@ -684,9 +685,9 @@ function ( dd4hep_handle_optional_sources tag optionals missing uses sources )
     dd4hep_find_package( ${USE_NAME} pkg_found 
       ARGS ${USE_REQUIRED} ${USE_COMPONENT} ${USE_COMPONENTS} 
       TYPE ${USE_TYPE} )
-    if ( "${pkg_found}" STREQUAL "OFF" )
+    if ( DEFINED pkg_found AND NOT "${pkg_found}" )
       dd4hep_print ( "|    ${tag}  ...optional: Skip sources ${USE_SOURCES} [requires ${USE_NAME}]" )
-    elseif ( "${pkg_found}" STREQUAL "ON" )
+    elseif ( DEFINED pkg_found AND "${pkg_found}" )
       dd4hep_print ( "|    ${tag}  ...optional: ADD sources ${USE_SOURCES} [dependent on ${USE_NAME}]" )
       file ( GLOB opt_sources ${USE_SOURCES} )
       set ( src ${src} ${opt_sources} )
@@ -732,10 +733,10 @@ function( dd4hep_use_package print_prefix inName outName )
     else()
       dd4hep_find_package( ${use} pkg_found )
     endif()
-    if ( "${pkg_found}" STREQUAL "ON" )
+    if ( "${pkg_found}" )
       dd4hep_debug ( "${print_prefix} package_libs: ${${use}_LIBRARIES}" )
       set ( use ${use} )
-    elseif ( "{pkg_found}" STREQUAL "OFF" )
+    elseif ( NOT "{pkg_found}" )
       dd4hep_print ( "|++> ${print_prefix} ...Missing package: ${use} [Ignored]" )
       unset ( use )
     elseif ( "${USE_REQUIRED}" STREQUAL "REQUIRED" )
@@ -761,7 +762,7 @@ function( dd4hep_use_package print_prefix inName outName )
       dd4hep_find_package ( ${use} pkg_found )
       set ( src ${use} )
     endif()
-    if ( NOT "${pkg_found}" STREQUAL "ON" )
+    if ( NOT "${pkg_found}" )
       dd4hep_print ( "|    ${print_prefix}  ...optional: Skip optional ${src} [${use} Not defined]" )
       unset ( use )
     endif()
@@ -857,7 +858,7 @@ function( dd4hep_package packageName )
   foreach ( use ${ARG_USES} )
     dd4hep_unpack_package_opts ( TEST ${use} )
     dd4hep_find_package ( ${TEST_NAME} pkg_found )
-    if ( "${pkg_found}" STREQUAL "OFF" )
+    if ( NOT "${pkg_found}" )
       set ( missing_uses ${missing_uses} ${TEST_NAME} )
     endif()
   endforeach()
@@ -969,7 +970,7 @@ function( dd4hep_add_library binary building )
     set ( tag ${ARG_PRINT} )
   endif()
 
-  if ( "${enabled}" STREQUAL "OFF" )
+  if ( NOT "${enabled}" )
     dd4hep_skipmsg ( "${tag} DISBALED -- package is not built!" )
   else()
     dd4hep_debug( "+------------------------------------------- <<<< LIBRARY ${pkg}:${binary} >>>> Version: ${${pkg}_VERSION}" )
@@ -1052,11 +1053,11 @@ endfunction(dd4hep_add_library)
 function( dd4hep_add_regular_library library )
   dd4hep_package_properties( pkg PKG enabled )
   set ( tag "Package library[${pkg}] -> ${library}" )
-  if ( "${enabled}" STREQUAL "OFF" )
+  if ( NOT "${enabled}" )
     dd4hep_skipmsg ( "${tag} DISBALED -- package is not built!" )
   else()
     dd4hep_add_library( ${library} building ${ARGN} PRINT ${tag} )
-    if ( "${building}" STREQUAL "ON" )
+    if ( "${building}" )
       dd4hep_debug ( "add_package_library -> ${library} ${PKG}_LIBRARIES:${pkg_libs}" )
     else()
       dd4hep_fatal ( "Package library[${pkg}] -> ${binary} Cannot be built! This is an ERROR condition." )    
@@ -1080,11 +1081,11 @@ endfunction(dd4hep_add_regular_library)
 function( dd4hep_add_package_library library )
   dd4hep_package_properties( pkg PKG enabled )
   set ( tag "Package library[${pkg}] -> ${library}" )
-  if ( "${enabled}" STREQUAL "OFF" )
+  if ( NOT "${enabled}" )
     dd4hep_skipmsg ( "${tag} DISBALED -- package is not built!" )
   else()
     dd4hep_add_library( ${library} building ${ARGN} PRINT ${tag} )
-    if ( "${building}" STREQUAL "ON" )
+    if ( "${building}" )
       get_property(pkg_libs GLOBAL PROPERTY PROPERTY ${PKG}_LIBRARIES )
       dd4hep_make_unique_list ( pkg_libs VALUES ${pkg_libs} ${library} )
       set_property(GLOBAL PROPERTY ${PKG}_LIBRARIES ${pkg_libs} )
@@ -1123,7 +1124,7 @@ endfunction(dd4hep_add_package_library)
 function( dd4hep_add_plugin binary )
   dd4hep_package_properties( pkg PKG enabled )
   set ( tag "Plugin[${pkg}] -> ${binary}" )
-  if ( "${enabled}" STREQUAL "OFF" )
+  if ( NOT "${enabled}" )
     dd4hep_skipmsg ( "${tag} DISBALED -- package is not built!" )
   else()
     cmake_parse_arguments(ARG "NOINSTALL" "" "SOURCES;GENERATED;LINK_LIBRARIES;INCLUDE_DIRS;USES;OPTIONAL;DEFINITIONS" ${ARGN})
@@ -1144,7 +1145,7 @@ function( dd4hep_add_plugin binary )
       )
     #
     # Generate ROOTMAP if the plugin will be built:
-    if ( "${building}" STREQUAL "ON" )
+    if ( "${building}" )
       dd4hep_generate_rootmap( ${binary} )
     endif()
   endif()
@@ -1176,7 +1177,7 @@ function ( dd4hep_add_executable binary )
   #set ( DD4HEP_DEBUG_CMAKE "ON" )
   dd4hep_package_properties( pkg PKG enabled )
   set ( tag "Executable[${pkg}] -> ${binary}" )
-  if ( "${enabled}" STREQUAL "OFF" )
+  if ( NOT "${enabled}" )
     dd4hep_skipmsg ( "${tag} DISBALED -- package is not built!" )
   else()
     cmake_parse_arguments ( ARG "" "" "SOURCES;GENERATED;LINK_LIBRARIES;INCLUDE_DIRS;USES;OPTIONAL" ${ARGN})
@@ -1246,7 +1247,7 @@ endfunction(dd4hep_add_executable)
 function( dd4hep_add_dictionary dictionary )
   dd4hep_package_properties( pkg PKG enabled )
   set ( tag "Dictionary[${pkg}] -> ${dictionary}" )
-  if ( "${enabled}" STREQUAL "OFF" )
+  if ( NOT "${enabled}" )
     dd4hep_skipmsg ( "${tag} DISBALED -- package is not built!" )
   else()
     cmake_parse_arguments(ARG "" "" "SOURCES;EXCLUDE;LINKDEF;OPTIONS;OPTIONAL;INCLUDES;OUTPUT" ${ARGN} )
@@ -1397,7 +1398,7 @@ function ( dd4hep_add_test_reg test_name )
   #  dd4hep_find_package( ${USE_NAME} pkg_found 
   #    ARGS ${USE_REQUIRED} ${USE_COMPONENT} ${USE_COMPONENTS} 
   #    TYPE ${USE_TYPE} )
-  #  if ( "${pkg_found}" STREQUAL "OFF" )
+  #  if ( NOT "${pkg_found}" )
   #    set( missing ${missing} ${USE_NAME} )
   #    unset ( use_test )
   #  endif()
-- 
GitLab