cmake if(NOT) examples

86Box/86Box src/qt/CMakeLists.txt :227

if(MSVC OR (NOT MINGW AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.22))

ornladios/ADIOS2 cmake/FindDAOS.cmake :28

if((NOT DAOS_ROOT) AND (NOT (ENV{DAOS_ROOT} STREQUAL "")))

ornladios/ADIOS2 cmake/FindLIBFABRIC.cmake :48

if(NOT TARGET libfabric::libfabric)

ornladios/ADIOS2 cmake/upstream/FindHDF5.cmake :736

if(NOT DEFINED HDF5_IS_PARALLEL)

ornladios/ADIOS2 cmake/upstream/FindPkgConfig.cmake :322

if(NOT DEFINED CMAKE_SYSTEM_NAME
    OR (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
        AND NOT CMAKE_CROSSCOMPILING))

ornladios/ADIOS2 cmake/upstream/FindPkgConfig.cmake :729

if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND OR
    (NOT "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0};${ARGN}") OR
    (    "${ARGN}" STREQUAL "" AND NOT "${__pkg_config_arguments_${_prefix}}" STREQUAL "${_module0}"))

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :734

if (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version)

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :894

if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI AND NOT lib_ABI IN_LIST _${_PYTHON_PREFIX}_ABIFLAGS)

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :902

if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL version) OR (lib_VERSION VERSION_LESS version))

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :908

if (NOT lib_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :955

if ((_PVID_EXACT AND NOT inc_VERSION VERSION_EQUAL expected_version) OR (inc_VERSION VERSION_LESS expected_version))

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :1021

if (DEFINED ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR
    AND NOT ${_PYTHON_PREFIX}_FIND_VERSION_MAJOR VERSION_EQUAL _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :1096

if (NOT _${_PYTHON_PREFIX}_FIND_ABI MATCHES "^(ON|OFF|ANY);(ON|OFF|ANY);(ON|OFF|ANY)$")

ornladios/ADIOS2 cmake/upstream/FindPython/Support.cmake :2897

if (NOT __${_PYTHON_PREFIX}_NUMPY_SIGNATURE STREQUAL _${_PYTHON_PREFIX}_NUMPY_SIGNATURE
    OR NOT EXISTS "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}")

ornladios/ADIOS2 scripts/ci/cmake/ci-common.cmake :47

if(NOT "$ENV{CI_BUILD_NAME}" STREQUAL "")

ornladios/ADIOS2 scripts/ci/cmake/ci-common.cmake :53

if(NOT "$ENV{CI_SOURCE_DIR}" STREQUAL "")

ornladios/ADIOS2 scripts/dashboard/common.cmake :104

if(NOT DEFINED dashboard_fresh)

ornladios/ADIOS2 scripts/dashboard/EnvironmentModules.cmake :102

if(NOT EXISTS "$ENV{MODULESHOME}/init/cmake")

ornladios/ADIOS2 source/adios2/helper/kokkos/CMakeLists.txt :6

if (NOT DEFINED Kokkos_CXX_COMPILER)

ornladios/ADIOS2 testing/adios2/engine/ssc/CMakeLists.txt :8

if(ADIOS2_HAVE_MPI AND NOT MSVC)

ornladios/ADIOS2 testing/install/CMakeLists.txt :100

if(NOT WIN32)

ornladios/ADIOS2 testing/utils/iotest/CMakeLists.txt :140

if(NOT MSVC)

ornladios/ADIOS2 thirdparty/atl/atl/scripts/dashboard/common.cmake :288

if(NOT dashboard_git_output STREQUAL "${dashboard_git_branch}")

ornladios/ADIOS2 thirdparty/dill/dill/scripts/ci/cmake/common.cmake :41

if(NOT "$ENV{CI_BUILD_NAME}" STREQUAL "")

ornladios/ADIOS2 thirdparty/dill/dill/scripts/dashboard/common.cmake :187

if(NOT DEFINED CTEST_GIT_COMMAND)

ornladios/ADIOS2 thirdparty/EVPath/EVPath/CMakeLists.txt :364

if(NOT (DEFINED EVPATH_USE_ZPL_ENET))

ornladios/ADIOS2 thirdparty/EVPath/EVPath/cmake/FindLIBFABRIC.cmake :48

if(NOT TARGET libfabric::libfabric)

ornladios/ADIOS2 thirdparty/EVPath/EVPath/cmake/upstream/FindPkgConfig.cmake :659

if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND)

ornladios/ADIOS2 thirdparty/EVPath/EVPath/scripts/ci/cmake/common.cmake :45

if(NOT "$ENV{CI_BUILD_NAME}" STREQUAL "")

ornladios/ADIOS2 thirdparty/EVPath/EVPath/scripts/dashboard/common.cmake :120

if(NOT DEFINED CTEST_PROJECT_NAME)

ornladios/ADIOS2 thirdparty/ffs/ffs/scripts/dashboard/common.cmake :503

if(NOT (MEMCHECK_DEFECTS EQUAL 0))

ornladios/ADIOS2 thirdparty/GTest/googletest/CMakeLists.txt :9

if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX)

ornladios/ADIOS2 thirdparty/GTest/googletest/googletest/cmake/internal_utils.cmake :107

if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)

antlr/antlr4 runtime/Cpp/CMakeLists.txt :108

if(NOT (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0))

antlr/antlr4 runtime/Cpp/CMakeLists.txt :120

if(NOT (CLANG_VERSION VERSION_GREATER 4.2.1 OR CLANG_VERSION VERSION_EQUAL 4.2.1))

apache/arrow cpp/cmake_modules/BuildUtils.cmake :693

if(NOT "$ENV{CONDA_PREFIX}" STREQUAL "" AND APPLE)

apache/arrow cpp/cmake_modules/FindThriftAlt.cmake :173

if(WIN32 AND NOT MSVC_TOOLCHAIN)

apache/arrow cpp/cmake_modules/SetupCxxFlags.cmake :737

if(NOT CMAKE_C_FLAGS_DEBUG MATCHES "-O")

apache/arrow python/CMakeLists.txt :256

if(NOT APPLE)

asmjit/asmjit CMakeLists.txt :53

if (NOT DEFINED ASMJIT_NO_AARCH64)

asmjit/asmjit CMakeLists.txt :68

if (NOT DEFINED ASMJIT_NO_SHM_OPEN)

assimp/assimp CMakeLists.txt :204

IF(NOT (MSVC_VERSION LESS 1900))

assimp/assimp cmake-modules/HunterGate.cmake :315

if(NOT download_result EQUAL 0)

assimp/assimp code/CMakeLists.txt :471

IF(((CMAKE_CXX_COMPILER_ID MATCHES "GNU") AND NOT MINGW AND NOT HAIKU) AND CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 13)

assimp/assimp contrib/android-cmake/android.toolchain.cmake :903

if( NOT EXISTS "${ANDROID_STL_INCLUDE_DIRS}" )

assimp/assimp contrib/android-cmake/android.toolchain.cmake :1421

if( NOT (ANDROID_NATIVE_API_LEVEL LESS 16) AND (NOT DEFINED ANDROID_APP_PIE OR ANDROID_APP_PIE) AND (CMAKE_VERSION VERSION_GREATER 2.8.8) )

assimp/assimp contrib/draco/cmake/draco_dependencies.cmake :57

if(NOT IS_DIRECTORY "${eigen_path}")

assimp/assimp contrib/draco/cmake/draco_dependencies.cmake :63

if(NOT IS_DIRECTORY "${eigen_path}")

assimp/assimp contrib/draco/cmake/draco_dependencies.cmake :124

if(NOT IS_DIRECTORY "${tinygltf_path}")

assimp/assimp contrib/draco/cmake/draco_variables.cmake :34

if(NOT IS_DIRECTORY "${${variable_name}}")

assimp/assimp contrib/googletest/googletest/CMakeLists.txt :308

if (NOT MSVC OR MSVC_VERSION GREATER 1310)

assimp/assimp contrib/pugixml/CMakeLists.txt :73

if (NOT DEFINED CMAKE_CXX_STANDARD_REQUIRED AND NOT DEFINED CMAKE_CXX_STANDARD AND NOT CMAKE_VERSION VERSION_LESS 3.8)

OpenChemistry/avogadroapp avogadro/CMakeLists.txt :117

if(NOT BUILD_SHARED_LIBS)

OpenChemistry/avogadrolibs avogadro/qtplugins/templatetool/CMakeLists.txt :30

if(NOT EXISTS "${_fragments}")

google/benchmark test/AssemblyTests.cmake :5

if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${CLANG_SUPPORTED_VERSION})

mono/boringssl third_party/android-cmake/android.toolchain.cmake :229

if( NOT DEFINED ANDROID_STANDALONE_TOOLCHAIN_SEARCH_PATH )

mono/boringssl util/android-cmake/android.toolchain.cmake :997

if( NOT ANDROID_NDK_RELEASE_NUM LESS 8004 ) # before r8d

mono/boringssl util/android-cmake/android.toolchain.cmake :1206

if( NOT ANDROID_COMPILER_IS_CLANG )

mono/boringssl util/android-cmake/android.toolchain.cmake :1421

if( NOT (ANDROID_NATIVE_API_LEVEL LESS 16) AND (NOT DEFINED ANDROID_APP_PIE OR ANDROID_APP_PIE) AND (CMAKE_VERSION VERSION_GREATER 2.8.8) )

c3lang/c3c CMakeLists.txt :183

if (NOT LLVM_PACKAGE_VERSION VERSION_GREATER_EQUAL 15.0)

catchorg/Catch2 CMake/FindLcov.cmake :340

if (NOT TARGET lcov-genhtml)

catchorg/Catch2 extras/Catch.cmake :258

"  if(NOT EXISTS \"${ctest_tests_file}\" OR"                                 "\n"
"     NOT \"${ctest_tests_file}\" IS_NEWER_THAN \"$<TARGET_FILE:${TARGET}>\" OR\n"
"     NOT \"${ctest_tests_file}\" IS_NEWER_THAN \"\${CMAKE_CURRENT_LIST_FILE}\")\n"

ccache/ccache cmake/FindCppHttplib.cmake :12

if(NOT "${CMAKE_MATCH_0}" STREQUAL "" AND "${_cpphttplib_version_string}" VERSION_GREATER_EQUAL "${CppHttplib_FIND_VERSION}")

CGAL/cgal CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt :4

if(NOT POLICY CMP0070 AND POLICY CMP0053)

CGAL/cgal Installation/CMakeLists.txt :320

if(NOT CGAL_BUILD_VERSION GREATER 0)

CGAL/cgal Installation/cmake/modules/CGALHelpers.cmake :70

if(NOT ${entry} MATCHES ".*\\.svn\$" AND IS_DIRECTORY ${entry})

CGAL/cgal Installation/cmake/modules/CGAL_add_test.cmake :176

if(NOT TEST "copy source_dir of ${PROJECT_NAME}")

CGAL/cgal Installation/cmake/modules/CGAL_add_test.cmake :256

if((ANDROID OR CGAL_RUN_TESTS_THROUGH_SSH) AND NOT TEST push_of__${exe_name})

CGAL/cgal Installation/cmake/modules/CGAL_Boost_iostreams_support.cmake :2

if(Boost_IOSTREAMS_FOUND AND NOT TARGET CGAL::Boost_iostreams_support)

CGAL/cgal Installation/cmake/modules/CGAL_enable_end_of_configuration_hook.cmake :109

if(NOT TEST "compilation of  ${_target}")

CGAL/cgal Installation/cmake/modules/CGAL_enable_end_of_configuration_hook.cmake :123

if(NOT TEST "compilation of  ${_target}")

CGAL/cgal Installation/cmake/modules/CGAL_SetupCGAL_Qt6Dependencies.cmake :58

if(NOT TARGET CGAL_Qt6_moc_and_resources)

CGAL/cgal Installation/cmake/modules/CGAL_SetupGMP.cmake :70

if(NOT MPFR_INCLUDE_DIR STREQUAL "${CGAL_INSTALLATION_PACKAGE_DIR}/auxiliary/gmp/include")

CGAL/cgal Installation/cmake/modules/CGAL_SetupVLD.cmake :3

if(DEFINED ENV{CGAL_ENABLE_VLD} AND NOT DEFINED CGAL_ENABLE_VLD)

CGAL/cgal Installation/cmake/modules/FindTBB.cmake :94

  if("${_data}" MATCHES "INPUT \\(([^(]+)\\)")
    #extract out the .so name from REGEX MATCH command
    set(_proper_so_name "${CMAKE_MATCH_1}")

    #construct path to the real .so which is presumed to be in the same directory
    #as the input file
    get_filename_component(_so_dir "${library}" DIRECTORY)
    set(${real_library} "${_so_dir}/${_proper_so_name}" PARENT_SCOPE)
  else()
    #unable to determine what this library is so just hope everything works
    #and pass it unmodified.
    set(${real_library} "${library}" PARENT_SCOPE)
  endif()
endfunction()

#===============================================
# Do the final processing for the package find.
#===============================================
macro(findpkg_finish PREFIX TARGET_NAME)
  if (${PREFIX}_INCLUDE_DIR AND ${PREFIX}_LIBRARY)
    set(${PREFIX}_FOUND TRUE)
    set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR})
    set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARY})
  else ()
    if (${PREFIX}_FIND_REQUIRED)
      message(FATAL_ERROR "Required library ${PREFIX} not found.")
    elseif (NOT ${PREFIX}_FIND_QUIETLY)
      message("Library ${PREFIX} not found.")
    endif()
    return()
  endif ()

  if (NOT TARGET "TBB::${TARGET_NAME}")
    if (${PREFIX}_LIBRARY_RELEASE)
      tbb_extract_real_library(${${PREFIX}_LIBRARY_RELEASE} real_release)
    endif ()
    if (${PREFIX}_LIBRARY_DEBUG)
      tbb_extract_real_library(${${PREFIX}_LIBRARY_DEBUG} real_debug)
    endif ()
    add_library(TBB::${TARGET_NAME} UNKNOWN IMPORTED)
    set_target_properties(TBB::${TARGET_NAME} PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${${PREFIX}_INCLUDE_DIR}")
    if (${PREFIX}_LIBRARY_DEBUG AND ${PREFIX}_LIBRARY_RELEASE)
      set_target_properties(TBB::${TARGET_NAME} PROPERTIES
        IMPORTED_LOCATION "${real_release}"
        IMPORTED_LOCATION_DEBUG "${real_debug}"
        IMPORTED_LOCATION_RELEASE "${real_release}")
    elseif (${PREFIX}_LIBRARY_RELEASE)
      set_target_properties(TBB::${TARGET_NAME} PROPERTIES
        IMPORTED_LOCATION "${real_release}")
    elseif (${PREFIX}_LIBRARY_DEBUG)
      set_target_properties(TBB::${TARGET_NAME} PROPERTIES
        IMPORTED_LOCATION "${real_debug}")
    endif ()
  endif ()

  #mark the following variables as internal variables
  mark_as_advanced(${PREFIX}_INCLUDE_DIR
                   ${PREFIX}_LIBRARY
                   ${PREFIX}_LIBRARY_DEBUG
                   ${PREFIX}_LIBRARY_RELEASE)
endmacro()

#===============================================
# Generate debug names from given release names
#===============================================
macro(get_debug_names PREFIX)
  foreach(i ${${PREFIX}})
    set(${PREFIX}_DEBUG ${${PREFIX}_DEBUG} ${i}d ${i}D ${i}_d ${i}_D ${i}_debug ${i})
  endforeach()
endmacro()

#===============================================
# See if we have env vars to help us find tbb
#===============================================
macro(getenv_path VAR)
   set(ENV_${VAR} $ENV{${VAR}})
   # replace won't work if var is blank
   if (ENV_${VAR})
     string( REGEX REPLACE "\\\\" "/" ENV_${VAR} ${ENV_${VAR}} )
   endif ()
endmacro()

#===============================================
# Couple a set of release AND debug libraries
#===============================================
macro(make_library_set PREFIX)
  if (${PREFIX}_RELEASE AND ${PREFIX}_DEBUG)
    set(${PREFIX} optimized ${${PREFIX}_RELEASE} debug ${${PREFIX}_DEBUG})
  elseif (${PREFIX}_RELEASE)
    set(${PREFIX} ${${PREFIX}_RELEASE})
  elseif (${PREFIX}_DEBUG)
    set(${PREFIX} ${${PREFIX}_DEBUG})
  endif ()
endmacro()


#=============================================================================
#  Now to actually find TBB
#

# Get path, convert backslashes as ${ENV_${var}}
getenv_path(TBB_ROOT)

#start with looking for TBB_DIR and TBB_ROOT
if((TBB_ROOT OR "$ENV{TBB_ROOT}" OR "$ENV{TBB_DIR}" ) AND NOT TBB_FOUND)
  find_package(TBB QUIET NO_MODULE NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
endif()
if(TBB_FOUND)
  return()
endif()#TBB_FOUND

#try CONFIG Mode
find_package(TBB 2019.0.11005 QUIET NO_MODULE)
if(TBB_FOUND)
  return()
endif()#TBB_FOUND

if(NOT ENV_TBB_ROOT)
  getenv_path(TBBROOT)
  set(ENV_TBB_ROOT ${ENV_TBBROOT})
endif()

# initialize search paths
set(TBB_PREFIX_PATH ${TBB_ROOT} ${ENV_TBB_ROOT})
set(TBB_INC_SEARCH_PATH "")
set(TBB_LIB_SEARCH_PATH "")


# If user built from sources
set(TBB_BUILD_PREFIX $ENV{TBB_BUILD_PREFIX})
if (TBB_BUILD_PREFIX AND ENV_TBB_ROOT)
  getenv_path(TBB_BUILD_DIR)
  if (NOT ENV_TBB_BUILD_DIR)
    set(ENV_TBB_BUILD_DIR ${ENV_TBB_ROOT}/build)
  endif ()

  # include directory under ${ENV_TBB_ROOT}/include
  list(APPEND TBB_LIB_SEARCH_PATH
    ${ENV_TBB_BUILD_DIR}/${TBB_BUILD_PREFIX}_release
    ${ENV_TBB_BUILD_DIR}/${TBB_BUILD_PREFIX}_debug)
endif ()


# For Windows, let's assume that the user might be using the precompiled
# TBB packages from the main website. These use a rather awkward directory
# structure (at least for automatically finding the right files) depending
# on platform and compiler, but we'll do our best to accommodate it.
# Not adding the same effort for the precompiled linux builds, though. Those
# have different versions for CC compiler versions and linux kernels which
# will never adequately match the user's setup, so there is no feasible way
# to detect the "best" version to use. The user will have to manually
# select the right files. (Chances are the distributions are shipping their
# custom version of tbb, anyway, so the problem is probably nonexistent.)
if (WIN32 AND MSVC)
  set(COMPILER_PREFIX "vc7.1")
  if (MSVC_VERSION EQUAL 1400)
    set(COMPILER_PREFIX "vc8")
  elseif(MSVC_VERSION EQUAL 1500)
    set(COMPILER_PREFIX "vc9")
  elseif(MSVC_VERSION EQUAL 1600)
    set(COMPILER_PREFIX "vc10")
  elseif(MSVC_VERSION EQUAL 1700)
    set(COMPILER_PREFIX "vc11")
  elseif(MSVC_VERSION EQUAL 1800)
    set(COMPILER_PREFIX "vc12")
  elseif(MSVC_VERSION GREATER_EQUAL 1900 AND MSVC_VERSION LESS_EQUAL 1939)
      # 1900-1925 actually spans three Visual Studio versions:
      # 1900      = VS 14.0 (v140 toolset) a.k.a. MSVC 2015
      # 1910-1919 = VS 15.0 (v141 toolset) a.k.a. MSVC 2017
      # 1920-1929 = VS 16.0 (v142 toolset) a.k.a. MSVC 2019
      # 1930-1939 = VS 17.0 (v143 toolset) a.k.a. MSVC 2022
      #
      # But these are binary compatible and TBB's open source distribution only
      # ships a single vs14 lib (as of 2020.0)
    set(COMPILER_PREFIX "vc14")
  else()
    # The next poor soul who finds themselves having to decode visual studio
    # version conventions may find these helpful:
    # - https://cmake.org/cmake/help/latest/variable/MSVC_VERSION.html
    # - https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering
    message(AUTHOR_WARNING
      "Unrecognized MSVC version (${MSVC_VERSION}). "
      "Please update FindTBB.cmake. "
      "Some TBB_* CMake variables may need to be set manually."
    )
  endif ()

  # for each prefix path, add ia32/64\${COMPILER_PREFIX}\lib to the lib search path
  foreach (dir IN LISTS TBB_PREFIX_PATH)
    if (CMAKE_CL_64)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia64/${COMPILER_PREFIX}/lib)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia64/${COMPILER_PREFIX})
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/intel64/${COMPILER_PREFIX}/lib)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/intel64/${COMPILER_PREFIX})
    else ()
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia32/${COMPILER_PREFIX}/lib)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia32/${COMPILER_PREFIX})
    endif ()
  endforeach ()
endif ()

# For OS X binary distribution, choose libc++ based libraries for Mavericks (10.9)
# and above and AppleClang
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND
    NOT CMAKE_SYSTEM_VERSION VERSION_LESS 13.0)
  set (USE_LIBCXX OFF)
  cmake_policy(GET CMP0025 POLICY_VAR)

  if (POLICY_VAR STREQUAL "NEW")
    if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
      set (USE_LIBCXX ON)
    endif ()
  else ()
    if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
      set (USE_LIBCXX ON)
    endif ()
  endif ()

  if (USE_LIBCXX)
    foreach (dir IN LISTS TBB_PREFIX_PATH)
      list (APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/libc++ ${dir}/libc++/lib)
    endforeach ()
  endif ()
endif ()

# check compiler ABI
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
  set(COMPILER_PREFIX)
  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
    list(APPEND COMPILER_PREFIX "gcc4.7")
  endif()
  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4)
    list(APPEND COMPILER_PREFIX "gcc4.4")
  endif()
  list(APPEND COMPILER_PREFIX "gcc4.1")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  set(COMPILER_PREFIX)
  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.6)
    list(APPEND COMPILER_PREFIX "gcc4.7")
  endif()
  list(APPEND COMPILER_PREFIX "gcc4.4")
else() # Assume compatibility with 4.4 for other compilers
  list(APPEND COMPILER_PREFIX "gcc4.4")
endif ()

# if platform architecture is explicitly specified
set(TBB_ARCH_PLATFORM $ENV{TBB_ARCH_PLATFORM})
if (TBB_ARCH_PLATFORM)
  foreach (dir IN LISTS TBB_PREFIX_PATH)
    list(APPEND TBB_LIB_SEARCH_PATH ${dir}/${TBB_ARCH_PLATFORM}/lib)
    list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/${TBB_ARCH_PLATFORM})
  endforeach ()
endif ()

foreach (dir IN LISTS TBB_PREFIX_PATH)
  foreach (prefix IN LISTS COMPILER_PREFIX)
    if (CMAKE_SIZEOF_VOID_P EQUAL 8)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/intel64)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/intel64/${prefix})
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/intel64/lib)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/intel64/${prefix}/lib)
    else ()
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia32)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib/ia32/${prefix})
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia32/lib)
      list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia32/${prefix}/lib)
    endif ()
  endforeach()
endforeach ()

# add general search paths
foreach (dir IN LISTS TBB_PREFIX_PATH)
  list(APPEND TBB_LIB_SEARCH_PATH ${dir}/lib ${dir}/Lib ${dir}/lib/tbb
    ${dir}/Libs)
  list(APPEND TBB_INC_SEARCH_PATH ${dir}/include ${dir}/Include
    ${dir}/include/tbb)
endforeach ()

set(TBB_LIBRARY_NAMES tbb)
get_debug_names(TBB_LIBRARY_NAMES)

find_path(TBB_INCLUDE_DIR
          NAMES tbb/tbb.h
          PATHS ${TBB_INC_SEARCH_PATH})

find_library(TBB_LIBRARY_RELEASE
             NAMES ${TBB_LIBRARY_NAMES}
             PATHS ${TBB_LIB_SEARCH_PATH})
find_library(TBB_LIBRARY_DEBUG
             NAMES ${TBB_LIBRARY_NAMES_DEBUG}
             PATHS ${TBB_LIB_SEARCH_PATH})
make_library_set(TBB_LIBRARY)

findpkg_finish(TBB tbb)

#if we haven't found TBB no point on going any further
if (NOT TBB_FOUND)
  return()
endif ()

#=============================================================================
# Look for TBB's malloc package
set(TBB_MALLOC_LIBRARY_NAMES tbbmalloc)
get_debug_names(TBB_MALLOC_LIBRARY_NAMES)

find_path(TBB_MALLOC_INCLUDE_DIR
          NAMES tbb/tbb.h
          PATHS ${TBB_INC_SEARCH_PATH})

find_library(TBB_MALLOC_LIBRARY_RELEASE
             NAMES ${TBB_MALLOC_LIBRARY_NAMES}
             PATHS ${TBB_LIB_SEARCH_PATH})
find_library(TBB_MALLOC_LIBRARY_DEBUG
             NAMES ${TBB_MALLOC_LIBRARY_NAMES_DEBUG}
             PATHS ${TBB_LIB_SEARCH_PATH})
make_library_set(TBB_MALLOC_LIBRARY)

findpkg_finish(TBB_MALLOC tbbmalloc)

#=============================================================================
# Look for TBB's malloc proxy package
set(TBB_MALLOC_PROXY_LIBRARY_NAMES tbbmalloc_proxy)
get_debug_names(TBB_MALLOC_PROXY_LIBRARY_NAMES)

find_path(TBB_MALLOC_PROXY_INCLUDE_DIR
          NAMES tbb/tbbmalloc_proxy.h
          PATHS ${TBB_INC_SEARCH_PATH})

find_library(TBB_MALLOC_PROXY_LIBRARY_RELEASE
             NAMES ${TBB_MALLOC_PROXY_LIBRARY_NAMES}
             PATHS ${TBB_LIB_SEARCH_PATH})
find_library(TBB_MALLOC_PROXY_LIBRARY_DEBUG
             NAMES ${TBB_MALLOC_PROXY_LIBRARY_NAMES_DEBUG}
             PATHS ${TBB_LIB_SEARCH_PATH})
make_library_set(TBB_MALLOC_PROXY_LIBRARY)

findpkg_finish(TBB_MALLOC_PROXY tbbmalloc_proxy)


#=============================================================================
# Parse all the version numbers from tbb.
if(NOT TBB_VERSION)
  if(EXISTS "${TBB_INCLUDE_DIR}/tbb/version.h")
    # The newer oneTBB provides tbb/version.h but no tbb/tbb_stddef.h.
    set(version_file "${TBB_INCLUDE_DIR}/tbb/version.h")
  else()
    # Older TBB provides tbb/tbb_stddef.h but no tbb/version.h.
    set(version_file "${TBB_INCLUDE_DIR}/tbb/tbb_stddef.h")
  endif()

  file(STRINGS
      "${version_file}"
      TBB_VERSION_CONTENTS
      REGEX "VERSION")

  string(REGEX REPLACE
    ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1"
    TBB_VERSION_MAJOR "${TBB_VERSION_CONTENTS}")

  string(REGEX REPLACE
    ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1"
    TBB_VERSION_MINOR "${TBB_VERSION_CONTENTS}")

  string(REGEX REPLACE
        ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1"
        TBB_INTERFACE_VERSION "${TBB_VERSION_CONTENTS}")

  string(REGEX REPLACE
        ".*#define TBB_COMPATIBLE_INTERFACE_VERSION ([0-9]+).*" "\\1"
        TBB_COMPATIBLE_INTERFACE_VERSION "${TBB_VERSION_CONTENTS}")

  set(TBB_VERSION "${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR}")
endif()

CGAL/cgal Installation/cmake/modules/run_test_with_cin.cmake :6

if(NOT CIN OR NOT EXISTS ${CIN})

CGAL/cgal Lab/demo/Lab/CGALlab_macros.cmake :56

if(NOT TARGET CGALlab_all_plugins)

CGAL/cgal Linear_cell_complex/benchmark/Linear_cell_complex_3/cmake/ACGCommon.cmake :537

if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/translations/${_target}_${lang}.ts" OR UPDATE_TRANSLATIONS_${_TARGET})

CGAL/cgal Point_set_processing_3/examples/Point_set_processing_3/CMakeLists.txt :53

if(NOT MSVC_VERSION OR MSVC_VERSION GREATER_EQUAL 1919 OR MSVC_VERSION LESS 1910)

CGAL/cgal Point_set_processing_3/test/Point_set_processing_3/CMakeLists.txt :37

if(NOT MSVC_VERSION OR MSVC_VERSION GREATER_EQUAL 1919 OR MSVC_VERSION LESS 1910)

CGAL/cgal Stream_support/test/Stream_support/CMakeLists.txt :16

if (NOT MSVC_VERSION OR MSVC_VERSION GREATER_EQUAL 1919 OR MSVC_VERSION LESS 1910)

CGNS/CGNS src/CMakeLists.txt :86

if (NOT DEFINED CMAKE_CONFIGURATION_TYPES)

projectchrono/chrono cmake/CMakeParseImplicitLinkInfo.cmake :243

if(NOT pos LESS 0)

projectchrono/chrono cmake/FindBlaze.cmake :77

if(NOT Blaze_FIND_QUIETLY)

projectchrono/chrono cmake/FindPackageHandleStandardArgs.cmake :341

if (NOT ${package}_FIND_VERSION VERSION_EQUAL version_head)

projectchrono/chrono cmake/FindPackageHandleStandardArgs.cmake :348

if (NOT ${package}_FIND_VERSION VERSION_EQUAL version)

projectchrono/chrono cmake/FindPackageHandleStandardArgs.cmake :511

if(NOT DEFINED FOUND_COMPONENTS_MSG)

projectchrono/chrono cmake/FindSIMD.cmake :387

if(CLANG_VERSION_STRING VERSION_GREATER_EQUAL 15.0 AND NOT CMAKE_CROSSCOMPILING)

projectchrono/chrono src/CMakeLists.txt :148

if((${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND MSVC AND "${MSVC_VERSION}" GREATER_EQUAL 1915) OR NOT CH_USE_EIGEN_OPENMP)

eranif/codelite wxcrafter/CMakeLists.txt :43

if(CMAKE_VERSION VERSION_GREATER 2.8.7 AND (UNIX AND NOT APPLE))

coin3d/coin CMakeLists.txt :239

if (NOT TARGET OpenGL::GL)

mono/corefx src/Native/Windows/CMakeLists.txt :126

if(NOT CLR_CMAKE_WIN32_FORCE_STATIC_LINK)

mosra/corrade doc/snippets/CMakeLists.txt :85

if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.15"))

mosra/corrade modules/CorradeLibSuffix.cmake :50

if(LIB_SUFFIX AND NOT IS_SYMLINK /usr/lib64)

mosra/corrade src/Corrade/Containers/Test/CMakeLists.txt :145

if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7.0") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.3") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.10"))

mosra/corrade src/Corrade/Utility/Test/CMakeLists.txt :406

if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7.0") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.3") OR
   (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.10"))

cp2k/cp2k cmake/modules/FindElpa.cmake :34

if(NOT TARGET cp2k::ELPA::elpa)

danmar/cppcheck cmake/findDependencies.cmake :69

if(NOT USE_BUNDLED_TINYXML2)

zeromq/cppzmq CMakeLists.txt :25

if (ZeroMQ_FOUND AND NOT (TARGET libzmq OR TARGET libzmq-static))

zeromq/cppzmq CMakeLists.txt :98

if (CMAKE_CXX_STANDARD AND NOT CMAKE_CXX_STANDARD EQUAL 98 AND CMAKE_CXX_STANDARD GREATER_EQUAL 11)