From: Dima Kogan <Dmitriy.Kogan@jpl.nasa.gov>
Date: Sun, 1 Oct 2023 10:31:09 -0700
Subject: Coin libraries come from the system, without cmake

Because those libraries don't provide cmake hooks. Alicevision has their own
fork of the coin libraries that does provide those hooks, but I don't use this
fork
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index dfa00ff..5507fed 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -459,21 +459,12 @@ if (ALICEVISION_BUILD_SFM)
         set(FLANN_LIBRARIES flann::flann_cpp LZ4::lz4_shared)
     else()
         message(FATAL_ERROR "FLANN can not be found")
     endif()
 endif()
 
-# ==============================================================================
-# CoinUtils, Clp, Osi
-# ==============================================================================
-if (ALICEVISION_BUILD_SFM)
-    find_package(CoinUtils REQUIRED)
-    find_package(Clp REQUIRED)
-    find_package(Osi REQUIRED)
-endif()
-
 # ==============================================================================
 # Lemon
 # ==============================================================================
 if (ALICEVISION_BUILD_SFM)
     find_package(LEMON REQUIRED)
 endif()
@@ -989,15 +980,12 @@ message("\n")
 
 message(STATUS "EIGEN: " ${EIGEN_VERSION} "")
 
 if (ALICEVISION_BUILD_SFM)
     message(STATUS "CERES: " ${CERES_VERSION} "")
     message(STATUS "FLANN: " ${FLANN_VERSION} "")
-    message(STATUS "CLP: " ${Clp_VERSION} "")
-    message(STATUS "COINUTILS: " ${CoinUtils_VERSION} "")
-    message(STATUS "OSI: " ${Osi_VERSION} "")
     message(STATUS "LEMON: " ${LEMON_VERSION} "")
 endif()
 
 if (NOT ALICEVISION_BUILD_LIDAR STREQUAL "OFF")
     message(STATUS "E57FORMAT: " ${E57Format} "")
 endif()
diff --git a/src/aliceVision/linearProgramming/CMakeLists.txt b/src/aliceVision/linearProgramming/CMakeLists.txt
index 65442c6..96b8c30 100644
--- a/src/aliceVision/linearProgramming/CMakeLists.txt
+++ b/src/aliceVision/linearProgramming/CMakeLists.txt
@@ -7,32 +7,38 @@ set(linearProgramming_files_headers
 )
 
 # Dependencies
 set(aliceVision_linearProgramming_DEPS
     aliceVision_numeric
     aliceVision_system
-    Coin::Clp        # clp + solver wrapper
-    Coin::CoinUtils  # container tools
-    Coin::Osi        # generic LP
 )
 
 if (NOT MOSEK_FOUND)
     alicevision_add_interface(aliceVision_linearProgramming
         SOURCES ${linearProgramming_files_headers} ${linearProgramming_files_sources}
         LINKS ${aliceVision_linearProgramming_DEPS}
+              -lClp
+              -lCoinUtils
+              -lOsiClp
     )
+    target_include_directories(aliceVision_linearProgramming INTERFACE /usr/include/coin/)
 else ()
     # Add MOSEK related sources
     list(APPEND linearProgramming_files_sources MOSEKSolver.cpp)
     list(APPEND linearProgramming_files_headers MOSEKSolver.hpp)
     alicevision_add_library(aliceVision_linearProgramming
         SOURCES ${linearProgramming_files_headers}
         PUBLIC_LINKS
             ${aliceVision_linearProgramming_DEPS}
             Coin::OsiMsk  # OSI solver wrapper for the Mosek backend
             ${MOSEK_LIB}  # Mosek lib
+            -lClp
+            -lCoinUtils
+            -lOsiClp
+        PUBLIC_INCLUDE_DIRS
+            /usr/include/coin/
   )
 endif()
 
 # Unit tests
 alicevision_add_test(linearProgramming_test.cpp NAME "linearProgramming" LINKS aliceVision_linearProgramming)
 
diff --git a/src/software/utils/CMakeLists.txt b/src/software/utils/CMakeLists.txt
index e1fc167..8175d82 100644
--- a/src/software/utils/CMakeLists.txt
+++ b/src/software/utils/CMakeLists.txt
@@ -367,15 +367,15 @@ if (ALICEVISION_BUILD_SFM)
               aliceVision_feature
               aliceVision_kvld
               aliceVision_sfm
               aliceVision_sfmData
               aliceVision_sfmDataIO
               aliceVision_colorHarmonization
-              Coin::Clp
-              Coin::CoinUtils
-              Coin::Osi
+              -lClp
+              -lCoinUtils
+              -lOsiClp
               Boost::program_options
               Boost::boost
               Boost::timer
               ${LEMON_LIBRARY}
     )
 
diff --git a/src/cmake/AliceVisionConfig.cmake.in b/src/cmake/AliceVisionConfig.cmake.in
index 8dc4a0d..683006c 100644
--- a/src/cmake/AliceVisionConfig.cmake.in
+++ b/src/cmake/AliceVisionConfig.cmake.in
@@ -96,19 +96,12 @@ if(ALICEVISION_HAVE_OPENMP)
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
 endif()
 
 find_dependency(Boost COMPONENTS @ALICEVISION_BOOST_COMPONENTS@)
 
-set(ALICEVISION_BUILD_SFM @ALICEVISION_BUILD_SFM@)
-if(ALICEVISION_BUILD_SFM)
-  find_dependency(CoinUtils REQUIRED)
-  find_dependency(Clp REQUIRED)
-  find_dependency(Osi REQUIRED)
-endif()
-
 set(ALICEVISION_BUILD_MVS @ALICEVISION_BUILD_MVS@)
 if(ALICEVISION_BUILD_MVS)
   find_dependency(ZLIB REQUIRED)
 endif()
 
 # propagate other building options
