From f58fd19f52029fbc2bf45c0d45650a918ee9f7c7 Mon Sep 17 00:00:00 2001 From: Xinzhao Zhu Date: Sun, 17 May 2020 22:55:56 +0800 Subject: [PATCH] Use CMake's Threads library to provide '-pthread` for Linux For linux platform, we may use the Threads library to provide the option `-pthread` when the program uses multiple thread. This solution is portable for WSL2/Linux and other disturbuiton. --- CMakeLists.txt | 3 ++- lint/CMakeLists.txt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e868da..f3766e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.1.0) project("cpp-peglib") +find_package(Threads) # Check if a supported compiler is used to setup the C++ standard to use: get_property(known_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES) list(FIND known_features "cxx_std_17" found) @@ -31,7 +32,7 @@ elseif(MSVC) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - set(add_link_deps pthread) + set(add_link_deps Threads::Threads) endif() enable_testing() diff --git a/lint/CMakeLists.txt b/lint/CMakeLists.txt index 88a9204..5561422 100644 --- a/lint/CMakeLists.txt +++ b/lint/CMakeLists.txt @@ -5,5 +5,5 @@ add_definitions("-std=c++11") add_executable(peglint peglint.cc) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - target_link_libraries(peglint pthread) + target_link_libraries(peglint ${add_link_deps}) endif()