[CMake] [cmake-developers] check_cxx_source_compiles and	include directories
    Roman Wüger 
    roman.wueger at gmx.at
       
    Mon Jul 27 15:26:18 EDT 2015
    
    
  
So, here is the piece of code which works
 
Main CMakeLists.txt:
 
project(MyProject)
 
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
 
if (APPLE)
    set(CMAKE_CXX_EXTENSIONS OFF) # Use -std=c++11 instead of -std=gnu++11
endif()
set(CMAKE_CXX_STANDARD 11)
include(CheckCXXCompilerFlag)
 
# Required for check_cxx_source_cmopiles
check_cxx_compiler_flag("-std=c++11" CXX11_FLAG)
if (CXX11_FLAG)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()
 
include(CheckMyCXX11Features.cmake)
.
.
.
add_subdirectory(SubProj1)
add_subdirectory(SubProj2)
.
.
.
 
 
CheckMyCXX11Features.cmake:
 
include(CheckCXXSourceCompiles)
 
# C++11 Unique Lock and Mutex
set(CMAKE_REQUIRED_FLAGS "${CMAKE_CXX_FLAGS}")
check_cxx_source_compiles(
   "#include <mutex>          // std::mutex, std::unique_lock
 
    std::mutex mtx;           // mutex for critical section
 
    void print_block (int n, char c) {
      // critical section (exclusive access to std::cout signaled by
lifetime of lck):
      std::unique_lock<std::mutex> lck (mtx);
      for (int i=0; i<n; ++i) { /* Do Something */ }
    }
 
    int main ()
    {
      print_block(50,'$');
 
      return 0;
    }"
  MY_HAVE_CXX11_MUTEX_AND_UNIQUE_LOCK
)
set(CMAKE_REQUIRED_FLAGS "")
 
configure_file(${CMAKE_SOURCE_DIR}/cmake/MyCXX11Features.h.in
${CMAKE_BINARY_DIR}/cmake/MyCXX11Features.h)
 
 
SubProj1 and SubProj2 does not find <mutex>, but check_cxx_source_compiles
succeeds.
Did I miss configure something here?
 
Best Regards
Roman
 
 
> -----Ursprüngliche Nachricht-----
> Von: cmake-developers [mailto:cmake-developers-bounces at cmake.org] Im
> Auftrag von Roman Wüger
> Gesendet: Montag, 27. Juli 2015 07:35
> An: CMake MailingList <cmake at cmake.org>; CMake Developer MailingList
> <cmake-developers at cmake.org>
> Betreff: [cmake-developers] check_cxx_source_compiles and include
> directories
> 
> Hello,
> 
> I've a small code example to test if the <mutex> header file exists (with
> check_cxx_source_compiles), which sets my variable successfully to TRUE.
> 
> When I compile the real code then I got an error message saying 'mutex'
file
> not found.
> 
> I checked the compile flags for both situations and these are equal. So I
> thought that the include directories could be the problem.
> 
> Any hints?
> 
> Best Regards
> Roman
> --
> 
> Powered by  <http://www.kitware.com> www.kitware.com
> 
> Please keep messages on-topic and check the CMake FAQ at:
>  <http://www.cmake.org/Wiki/CMake_FAQ> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
> 
> CMake Support:  <http://cmake.org/cmake/help/support.html>
http://cmake.org/cmake/help/support.html
> CMake Consulting:  <http://cmake.org/cmake/help/consulting.html>
http://cmake.org/cmake/help/consulting.html
> CMake Training Courses:  <http://cmake.org/cmake/help/training.html>
http://cmake.org/cmake/help/training.html
> 
> Visit other Kitware open-source projects at
>  <http://www.kitware.com/opensource/opensource.html>
http://www.kitware.com/opensource/opensource.html
> 
> Follow this link to subscribe/unsubscribe:
>  <http://public.kitware.com/mailman/listinfo/cmake-developers>
http://public.kitware.com/mailman/listinfo/cmake-developers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20150727/eaacd01c/attachment-0001.html>
    
    
More information about the CMake
mailing list