/*************************************************************** -*- C++ -*- ***
 * Copyright (c) 2022 - 2026 NVIDIA Corporation & Affiliates.                  *
 * All rights reserved.                                                        *
 *                                                                             *
 * This source code and the accompanying materials are made available under    *
 * the terms of the Apache License 2.0 which accompanies this distribution.    *
 ******************************************************************************/

#pragma once
#define PLATFORM_SHARED_LIBRARY_SUFFIX "@CMAKE_SHARED_LIBRARY_SUFFIX@"
#define LLVM_INCLUDE_DIR "@LLVM_INCLUDE_DIRS@"
#define LLVM_ROOT "@LLVM_BINARY_DIR@"
#ifndef LLVM_CONFIG_H
#include "llvm/Config/llvm-config.h"
#endif
#ifndef LLVM_TARGET_TRIPLE
#define LLVM_TARGET_TRIPLE LLVM_DEFAULT_TARGET_TRIPLE
#endif

// This is used by cudaq-quake as a backup search location
// for required cudaq headers. We will search this install
// directory first
#define FALLBACK_CUDAQ_INCLUDE_DIR "@CMAKE_SOURCE_DIR@/runtime"

// This is used by cudaq-quake as a backup search location
// for cudaq/Support/TargetConfig.h and cudaq/Support/Version.h
#define FALLBACK_CUDAQ_SUPPORT_DIR "@CMAKE_SOURCE_DIR@/cudaq/include"

// This is used by cudaq-quake as a backup search location
// for required json headers.
#define FALLBACK_JSON_INCLUDE_DIR "@CMAKE_SOURCE_DIR@/tpls/json/single_include_fwd"

// Same as FALLBACK_CUDAQ_INCLUDE_DIR for new include tree introduced by the 
// runtime refactor
#define FALLBACK_REFACTORED_CUDAQ_INCLUDE_DIR "@CMAKE_SOURCE_DIR@/runtime/include"

// Fallback includes for internal modules
#define FALLBACK_CUDAQ_INTERNAL_COMPILER_INCLUDE_DIR "@CMAKE_SOURCE_DIR@/runtime/internal/compiler/include"

// C++ standard library header paths for cudaq-quake (determined at configure time)
// If LLVM was built with libc++, these paths point to LLVM's headers
#define CUDAQ_LIBCXX_PATH "@CUDAQ_LIBCXX_PATH@"
#define CUDAQ_LIBCXX_TARGET_PATH "@CUDAQ_LIBCXX_TARGET_PATH@"
// If LLVM doesn't have libc++ and we're on macOS, use the SDK sysroot
#define CUDAQ_SYSROOT_PATH "@CUDAQ_SYSROOT_PATH@"
