Make CMake threads a public Ceres dependency.
- Required to propagate the threading flags to example targets that
depend upon Ceres and do not directly specify threads as a dependency
to support some *nix builds.
Change-Id: I1c229bd0241da55a203c2b1f8fc28ea43c312e69
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt
index d2a6bd1..e90562a 100644
--- a/internal/ceres/CMakeLists.txt
+++ b/internal/ceres/CMakeLists.txt
@@ -30,7 +30,6 @@
# Avoid 'xxx.cc has no symbols' warnings from source files which are 'empty'
# when their enclosing #ifdefs are disabled.
-find_package(Threads QUIET)
if (CERES_THREADING_MODEL STREQUAL "CXX11_THREADS")
set(CERES_PARALLEL_FOR_SRC parallel_for_cxx.cc thread_pool.cc)
elseif (CERES_THREADING_MODEL STREQUAL "OPENMP")
@@ -39,10 +38,6 @@
# OpenMP in GCC requires the GNU OpenMP library.
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES gomp)
endif()
- if (NOT MSVC)
- # Add thread library dependencies for OpenMP to the Ceres target.
- list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT})
- endif()
elseif (CERES_THREADING_MODEL STREQUAL "NO_THREADS")
set(CERES_PARALLEL_FOR_SRC parallel_for_nothreads.cc)
endif()
@@ -176,6 +171,9 @@
endif (SCHUR_SPECIALIZATIONS)
# Build the list of dependencies for Ceres based on the current configuration.
+find_package(Threads QUIET)
+list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES Threads::Threads)
+
if (NOT MINIGLOG AND GLOG_FOUND)
list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GLOG_LIBRARIES})
if (GFLAGS_FOUND)