From f531b80c9413462f84e6abb77e0413d13d146c02 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Mon, 24 Jun 2024 14:43:58 +0200
Subject: [PATCH] [cmake] Introduced CONDA_BUILD variable.

---
 scripts/cmake/Dependencies.cmake              | 30 ++++++++++---------
 .../cmake/DependenciesExternalProject.cmake   |  2 +-
 scripts/cmake/packaging/Pack.cmake            | 12 ++++----
 3 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/scripts/cmake/Dependencies.cmake b/scripts/cmake/Dependencies.cmake
index 2e8c74f7933..bec13b28f22 100644
--- a/scripts/cmake/Dependencies.cmake
+++ b/scripts/cmake/Dependencies.cmake
@@ -42,7 +42,7 @@ else()
     )
 endif()
 
-if(GUIX_BUILD)
+if(GUIX_BUILD OR CONDA_BUILD)
     add_library(tclap INTERFACE IMPORTED) # header-only, nothing else to do
 else()
     CPMFindPackage(
@@ -69,7 +69,7 @@ else()
         NAME tetgen GITHUB_REPOSITORY ufz/tetgen
         GIT_TAG 213548f5bca1ec00269603703f0fec1272181587 SYSTEM TRUE
     )
-    if(tetgen_ADDED)
+    if(tetgen_ADDED AND NOT CONDA_BUILD)
         install(PROGRAMS $<TARGET_FILE:tetgen> DESTINATION bin)
     endif()
     list(APPEND DISABLE_WARNINGS_TARGETS tet tetgen)
@@ -153,7 +153,7 @@ if(Eigen3_ADDED)
 endif()
 
 if(OGS_USE_MFRONT)
-    if(GUIX_BUILD)
+    if(GUIX_BUILD OR CONDA_BUILD)
         find_package(MFrontGenericInterface REQUIRED)
     else()
         set(CMAKE_REQUIRE_FIND_PACKAGE_TFEL TRUE)
@@ -316,7 +316,7 @@ endif()
 #     find_package(ParaView REQUIRED)
 # endif()
 # ~~~
-if(GUIX_BUILD)
+if(GUIX_BUILD OR CONDA_BUILD)
     add_library(exprtk INTERFACE IMPORTED)
 else()
     CPMAddPackage(
@@ -331,7 +331,7 @@ else()
     endif()
 endif()
 
-if(GUIX_BUILD)
+if(GUIX_BUILD OR CONDA_BUILD)
     find_package(range-v3 REQUIRED)
 else()
     CPMFindPackage(
@@ -343,13 +343,15 @@ else()
     )
 endif()
 
-if((OGS_BUILD_TESTING OR OGS_BUILD_UTILS) AND NOT GUIX_BUILD)
-    CPMAddPackage(
-        NAME vtkdiff GITHUB_REPOSITORY ufz/vtkdiff
-        GIT_TAG 9754b4da43c6adfb65d201ed920b5f6ea27b38b9
-    )
-    if(vtkdiff_ADDED)
-        install(PROGRAMS $<TARGET_FILE:vtkdiff> DESTINATION bin)
+if(NOT (GUIX_BUILD OR CONDA_BUILD))
+    if((OGS_BUILD_TESTING OR OGS_BUILD_UTILS))
+        CPMAddPackage(
+            NAME vtkdiff GITHUB_REPOSITORY ufz/vtkdiff
+            GIT_TAG 9754b4da43c6adfb65d201ed920b5f6ea27b38b9
+        )
+        if(vtkdiff_ADDED)
+            install(PROGRAMS $<TARGET_FILE:vtkdiff> DESTINATION bin)
+        endif()
     endif()
 endif()
 
@@ -419,7 +421,7 @@ if(MSVC)
 endif()
 
 if(OGS_BUILD_UTILS)
-    if(NOT GUIX_BUILD)
+    if(NOT GUIX_BUILD AND NOT CONDA_BUILD)
         set(_metis_options "MSVC ${WIN32}")
         if(WIN32)
             list(APPEND _metis_options "BUILD_SHARED_LIBS OFF")
@@ -469,7 +471,7 @@ if(OGS_BUILD_UTILS)
 endif()
 
 if(OGS_USE_NETCDF)
-    if(NOT GUIX_BUILD)
+    if(NOT GUIX_BUILD AND NOT CONDA_BUILD)
         find_package(netCDF CONFIG REQUIRED)
         find_library(NETCDF_LIBRARIES_CXX NAMES netcdf_c++4 netcdf-cxx4)
         if(NOT NETCDF_LIBRARIES_CXX)
diff --git a/scripts/cmake/DependenciesExternalProject.cmake b/scripts/cmake/DependenciesExternalProject.cmake
index b59a2a75847..ea89d38d33d 100644
--- a/scripts/cmake/DependenciesExternalProject.cmake
+++ b/scripts/cmake/DependenciesExternalProject.cmake
@@ -424,7 +424,7 @@ set(_vtk_source_file
 )
 if(EXISTS ${_vtk_source_file})
     set(_vtk_source URL ${_vtk_source_file})
-elseif(NOT OGS_BUILD_VTK AND (NOT OGS_USE_MKL OR GUIX_BUILD))
+elseif(NOT OGS_BUILD_VTK AND (NOT OGS_USE_MKL OR GUIX_BUILD OR CONDA_BUILD))
     # Typically VTK also pulls in libgomp dependency when found on system
     unset(VTK_COMPONENTS)
     foreach(opt ${VTK_OPTIONS})
diff --git a/scripts/cmake/packaging/Pack.cmake b/scripts/cmake/packaging/Pack.cmake
index 80843c7bb2d..bbe13758d75 100644
--- a/scripts/cmake/packaging/Pack.cmake
+++ b/scripts/cmake/packaging/Pack.cmake
@@ -75,16 +75,18 @@ if(WIN32)
     file(COPY ${PYTHON_RUNTIME_LIBS}
          DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
     )
-elseif(NOT GUIX_BUILD)
+elseif(NOT GUIX_BUILD AND NOT CONDA_BUILD)
     install(FILES ${Python_LIBRARIES} DESTINATION ${CMAKE_INSTALL_LIBDIR})
 endif()
 
 configure_file(Documentation/README.txt.in ${PROJECT_BINARY_DIR}/README.txt)
-install(FILES ${PROJECT_BINARY_DIR}/README.txt DESTINATION .)
 
-if(NOT GUIX_BUILD)
+if(NOT GUIX_BUILD AND NOT CONDA_BUILD)
     # May contain machine specific content, e.g. MPIEXEC_MAX_NUMPROCS
     install(FILES ${PROJECT_BINARY_DIR}/CMakeCache.txt TYPE INFO)
+    install(FILES ${PROJECT_BINARY_DIR}/cmake_args TYPE INFO OPTIONAL)
+endif()
+if(NOT CONDA_BUILD)
+    install(FILES ${PROJECT_BINARY_DIR}/third_party_licenses.txt TYPE INFO)
+    install(FILES ${PROJECT_BINARY_DIR}/README.txt DESTINATION .)
 endif()
-install(FILES ${PROJECT_BINARY_DIR}/cmake_args TYPE INFO OPTIONAL)
-install(FILES ${PROJECT_BINARY_DIR}/third_party_licenses.txt TYPE INFO)
-- 
GitLab