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