Revision: 77652
          http://sourceforge.net/p/brlcad/code/77652
Author:   starseeker
Date:     2020-10-28 01:32:37 +0000 (Wed, 28 Oct 2020)
Log Message:
-----------
Post 3.1 CMake 'highly recommends' using the Threads::Threads imported target 
and the THREADS_PREFER_PTHREAD_FLAG - switch over to the recommended approach.

Modified Paths:
--------------
    brlcad/trunk/CMakeLists.txt
    brlcad/trunk/misc/tools/env2c/CMakeLists.txt
    brlcad/trunk/regress/coverage/CMakeLists.txt
    brlcad/trunk/regress/pkg/CMakeLists.txt
    brlcad/trunk/regress/repository/CMakeLists.txt
    brlcad/trunk/src/art/CMakeLists.txt
    brlcad/trunk/src/libbu/CMakeLists.txt
    brlcad/trunk/src/other/gdal/CMakeLists.txt
    brlcad/trunk/src/other/proj-4/src/CMakeLists.txt
    brlcad/trunk/src/other/tcl/CMakeLists.txt
    brlcad/trunk/src/rt/CMakeLists.txt
    brlcad/trunk/src/rtwizard/CMakeLists.txt

Modified: brlcad/trunk/CMakeLists.txt
===================================================================
--- brlcad/trunk/CMakeLists.txt 2020-10-27 06:38:29 UTC (rev 77651)
+++ brlcad/trunk/CMakeLists.txt 2020-10-28 01:32:37 UTC (rev 77652)
@@ -2284,9 +2284,17 @@
 # be referenced in a pkgconfig file
 
 # Look for threads (doesn't check for headers)
-# The variable CMAKE_THREAD_LIBS_INIT is the one of interest
-# when writing target_link_libraries lists.
+# Post 3.1 CMake has switched to recommending using an imported target
+# and setting a "prefer pthreads" flag - previously we were using the
+# CMAKE_THREAD_LIBS_INIT variable
+set(THREADS_PREFER_PTHREAD_FLAG TRUE)
 find_package(Threads REQUIRED)
+# By default, the Threads package doesn't stash any of its values in
+# cache.  This is inconvenient for debugging, so we set them ourselves.
+set(CMAKE_THREAD_LIBS_INIT ${CMAKE_THREAD_LIBS_INIT} CACHE STRING "Threads")
+set(CMAKE_USE_WIN32_THREADS_INIT ${CMAKE_USE_WIN32_THREADS_INIT} CACHE STRING 
"Threads")
+set(CMAKE_USE_PTHREADS_INIT ${CMAKE_USE_PTHREADS_INIT} CACHE STRING "Threads")
+set(CMAKE_HP_PTHREADS_INIT ${CMAKE_HP_PTHREADS_INIT} CACHE STRING "Threads")
 
 # Check for the C++ STL library - need to link it explicitly in
 # some compilation situations

Modified: brlcad/trunk/misc/tools/env2c/CMakeLists.txt
===================================================================
--- brlcad/trunk/misc/tools/env2c/CMakeLists.txt        2020-10-27 06:38:29 UTC 
(rev 77651)
+++ brlcad/trunk/misc/tools/env2c/CMakeLists.txt        2020-10-28 01:32:37 UTC 
(rev 77652)
@@ -55,7 +55,7 @@
   target_compile_options(env2c PRIVATE "-O3")
 endif (O3_COMPILER_FLAG)
 
-target_link_libraries(env2c ${CMAKE_THREAD_LIBS_INIT})
+target_link_libraries(env2c Threads::Threads)
 
 # Local Variables:
 # tab-width: 8

Modified: brlcad/trunk/regress/coverage/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/coverage/CMakeLists.txt        2020-10-27 06:38:29 UTC 
(rev 77651)
+++ brlcad/trunk/regress/coverage/CMakeLists.txt        2020-10-28 01:32:37 UTC 
(rev 77652)
@@ -24,7 +24,7 @@
 endforeach(rf ${REGRESS_FILES_CMAKE})
 
 # Build a scanner to introspect the tests
-BRLCAD_ADDEXEC(covgcheck covgcheck.cpp "libbu;${CMAKE_THREAD_LIBS_INIT}" TEST)
+BRLCAD_ADDEXEC(covgcheck covgcheck.cpp "libbu;Threads::Threads" TEST)
 if (O3_COMPILER_FLAG)
   # This check benefits greatly from optimization. If we have the O3 flag, use
   # it - whether or not the standard build settings would add it.

Modified: brlcad/trunk/regress/pkg/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/pkg/CMakeLists.txt     2020-10-27 06:38:29 UTC (rev 
77651)
+++ brlcad/trunk/regress/pkg/CMakeLists.txt     2020-10-28 01:32:37 UTC (rev 
77652)
@@ -5,7 +5,7 @@
   ${PKG_INCLUDE_DIRS}
   )
 
-BRLCAD_ADDEXEC(regress_pkg regress_pkg.cpp 
"libpkg;libbu;${CMAKE_THREAD_LIBS_INIT}" NO_INSTALL)
+BRLCAD_ADDEXEC(regress_pkg regress_pkg.cpp "libpkg;libbu;Threads::Threads" 
NO_INSTALL)
 set_target_properties(regress_pkg PROPERTIES FOLDER "BRL-CAD Regression 
Tests/libpkg")
 
 BRLCAD_REGRESSION_TEST(regress-pkg "regress_pkg" EXEC regress_pkg STAND_ALONE)

Modified: brlcad/trunk/regress/repository/CMakeLists.txt
===================================================================
--- brlcad/trunk/regress/repository/CMakeLists.txt      2020-10-27 06:38:29 UTC 
(rev 77651)
+++ brlcad/trunk/regress/repository/CMakeLists.txt      2020-10-28 01:32:37 UTC 
(rev 77652)
@@ -5,7 +5,7 @@
 
 
 # Build a scanner to check the repository for various problems
-BRLCAD_ADDEXEC(repocheck "repocheck.cpp;strnstr.c" 
"libbu;${CMAKE_THREAD_LIBS_INIT}" TEST)
+BRLCAD_ADDEXEC(repocheck "repocheck.cpp;strnstr.c" "libbu;Threads::Threads" 
TEST)
 if (O3_COMPILER_FLAG)
   # This check benefits greatly from optimization. If we have the O3 flag, use
   # it - whether or not the standard build settings would add it.

Modified: brlcad/trunk/src/art/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/art/CMakeLists.txt 2020-10-27 06:38:29 UTC (rev 77651)
+++ brlcad/trunk/src/art/CMakeLists.txt 2020-10-28 01:32:37 UTC (rev 77652)
@@ -9,7 +9,7 @@
 BRLCAD_INCLUDE_DIRS(ART_INCLUDE_DIRS)
 
 set(RT_STD_LIBS
-  ${CMAKE_THREAD_LIBS_INIT}
+  Threads::Threads
   librt
   libnmg
   libdm

Modified: brlcad/trunk/src/libbu/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/libbu/CMakeLists.txt       2020-10-27 06:38:29 UTC (rev 
77651)
+++ brlcad/trunk/src/libbu/CMakeLists.txt       2020-10-28 01:32:37 UTC (rev 
77652)
@@ -142,7 +142,7 @@
   CMAKEFILES(parallel_cpp11thread.cpp)
 endif(NOT CMAKE_CXX_STANDARD EQUAL 98)
 
-BRLCAD_ADDLIB(libbu "${LIBBU_SOURCES}" 
"${Foundation_LIBRARIES};${CMAKE_THREAD_LIBS_INIT};${DL_LIBRARY};${WINSOCK_LIB};${PSAPI_LIB};${BSON_LIBRARIES};${UUID_LIBRARIES};${REGEX_LIBRARIES};${M_LIBRARY}")
+BRLCAD_ADDLIB(libbu "${LIBBU_SOURCES}" 
"${Foundation_LIBRARIES};Threads::Threads;${DL_LIBRARY};${WINSOCK_LIB};${PSAPI_LIB};${BSON_LIBRARIES};${UUID_LIBRARIES};${REGEX_LIBRARIES};${M_LIBRARY}")
 set_target_properties(libbu PROPERTIES VERSION 20.0.1 SOVERSION 20)
 
 # Define a pre-build test for libbu to check the semaphores in BRL-CAD's 
headers for

Modified: brlcad/trunk/src/other/gdal/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/other/gdal/CMakeLists.txt  2020-10-27 06:38:29 UTC (rev 
77651)
+++ brlcad/trunk/src/other/gdal/CMakeLists.txt  2020-10-28 01:32:37 UTC (rev 
77652)
@@ -358,7 +358,7 @@
   set_target_properties(ogr_frmt_${frmt} PROPERTIES FOLDER "Third Party 
Libraries/GDAL")
 endforeach(frmt ${OGR_FORMATS})
 
-set(gdal_libs ${PROJ4_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} 
${CMAKE_THREAD_LIBS_INIT})
+set(gdal_libs ${PROJ4_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} 
Threads::Threads)
 set(lib_list M DL ICONV)
 foreach(ll ${lib_list})
   if(${ll}_LIBRARY)

Modified: brlcad/trunk/src/other/proj-4/src/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/other/proj-4/src/CMakeLists.txt    2020-10-27 06:38:29 UTC 
(rev 77651)
+++ brlcad/trunk/src/other/proj-4/src/CMakeLists.txt    2020-10-28 01:32:37 UTC 
(rev 77652)
@@ -203,7 +203,7 @@
   add_library(proj SHARED ${all_srcs} ${hdr_files})
   set_target_properties(proj PROPERTIES VERSION "${PROJ_BUILD_VERSION}" 
SOVERSION "${PROJ_API_VERSION}")
   set_target_properties(proj PROPERTIES LINKER_LANGUAGE C)
-  set(proj_libs ${M_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
+  set(proj_libs ${M_LIBRARY} Threads::Threads)
   if(proj_libs)
     target_link_libraries(proj ${proj_libs})
   endif(proj_libs)

Modified: brlcad/trunk/src/other/tcl/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/other/tcl/CMakeLists.txt   2020-10-27 06:38:29 UTC (rev 
77651)
+++ brlcad/trunk/src/other/tcl/CMakeLists.txt   2020-10-28 01:32:37 UTC (rev 
77652)
@@ -173,7 +173,7 @@
 # support for threads.
 include(CheckFunctionExists)
 function(check_extra_pthread_funcs)
-  set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+  set(CMAKE_REQUIRED_LIBRARIES Threads::Threads)
   check_function_exists(pthread_mutex_init HAVE_PTHREAD_MUTEX_INIT)
   if (HAVE_PTHREAD_MUTEX_INIT)
     add_definitions(-DHAVE_PTHREAD_MUTEX_INIT=1)
@@ -1302,7 +1302,7 @@
   ${GHBN_LIBRARY}
   ${ZLIB_LIBRARIES}
   ${M_LIBRARY}
-  ${CMAKE_THREAD_LIBS_INIT}
+  Threads::Threads
  )
 
 add_library(tcl ${TCL_SRCS})

Modified: brlcad/trunk/src/rt/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/rt/CMakeLists.txt  2020-10-27 06:38:29 UTC (rev 77651)
+++ brlcad/trunk/src/rt/CMakeLists.txt  2020-10-28 01:32:37 UTC (rev 77652)
@@ -31,7 +31,7 @@
 
 if(MPI_C_LIBRARIES AND BRLCAD_ENABLE_MPI)
   set(RT_STD_LIBS
-    ${CMAKE_THREAD_LIBS_INIT}
+    Threads::Threads
     ${MPI_C_LIBRARIES}
     librt
     libnmg
@@ -41,7 +41,7 @@
     )
 else()
   set(RT_STD_LIBS
-    ${CMAKE_THREAD_LIBS_INIT}
+    Threads::Threads
     librt
     libnmg
     liboptical
@@ -54,12 +54,12 @@
 
 BRLCAD_ADDEXEC(rtexample "rtexample.c" "librt;libdm;liboptical;libicv" 
NO_INSTALL)
 
-BRLCAD_ADDEXEC(reshoot "reshoot.c" 
"${CMAKE_THREAD_LIBS_INIT};librt;libdm;liboptical;libicv")
+BRLCAD_ADDEXEC(reshoot "reshoot.c" 
"Threads::Threads;librt;libdm;liboptical;libicv")
 
 BRLCAD_ADDEXEC(rtshot "rtshot.c" "${RT_STD_LIBS};libdm")
 ADD_TARGET_DEPS(rtshot dm_plugins)
 
-BRLCAD_ADDEXEC(rtscale "read-rtlog.c;rtscale.c" 
"${CMAKE_THREAD_LIBS_INIT};librt;libdm;liboptical;libicv;${M_LIBRARY}")
+BRLCAD_ADDEXEC(rtscale "read-rtlog.c;rtscale.c" 
"Threads::Threads;librt;libdm;liboptical;libicv;${M_LIBRARY}")
 ADD_TARGET_DEPS(rtscale dm_plugins)
 
 BRLCAD_ADDEXEC(rt "${LIBRTUIF_SOURCES};view.c" 
"${OPENCL_LIBS};${RT_STD_LIBS};libdm")

Modified: brlcad/trunk/src/rtwizard/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/rtwizard/CMakeLists.txt    2020-10-27 06:38:29 UTC (rev 
77651)
+++ brlcad/trunk/src/rtwizard/CMakeLists.txt    2020-10-28 01:32:37 UTC (rev 
77652)
@@ -20,7 +20,7 @@
   endif (HAVE_WINDOWS_H)
 
 
-  BRLCAD_ADDEXEC(rtwizard "${RTWIZARD_SRCS}" 
"libtclcad;librt;libdm;liboptical;libicv;${ITCL_LIBRARY};${ITK_LIBRARY};${CMAKE_THREAD_LIBS_INIT};${M_LIBRARY}")
+  BRLCAD_ADDEXEC(rtwizard "${RTWIZARD_SRCS}" 
"libtclcad;librt;libdm;liboptical;libicv;${ITCL_LIBRARY};${ITK_LIBRARY};Threads::Threads;${M_LIBRARY}")
   ADD_TARGET_DEPS(rtwizard rt rtedge fbserv fb-png fb-pix fbclear fblabel 
fbfree fbline fb-fb pix-bw bwmod bw-pix pixmatte pix-fb tkpng dm_plugins)
   foreach(item ${tclindex_target_list})
     add_dependencies(rtwizard ${item})

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to