From 2cda760312eb9219f4e3d773209289696fec5f71 Mon Sep 17 00:00:00 2001 From: Ahmad Fatoum Date: Sat, 4 May 2019 19:36:16 +0200 Subject: [PATCH] examples: CMake: don't build core_loading_thread if no pthreads The example requires pthreads and now C11 , thus skip it if either isn't available. This also fixes the current Travis CI build failure for the Windows configuration. --- examples/CMakeLists.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 32d27ddc..5f0b0242 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -28,6 +28,24 @@ include(CheckIncludeFiles) set(OUTPUT_EXT) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) +include(CheckIncludeFile) +CHECK_INCLUDE_FILE("stdatomic.h" HAVE_STDATOMIC_H) +set(CMAKE_THREAD_PREFER_PTHREAD TRUE) +find_package(Threads) +if (CMAKE_USE_PTHREADS_INIT AND HAVE_STDATOMIC_H) + add_if_flag_compiles("-std=c11" CMAKE_C_FLAGS) + if(THREADS_HAVE_PTHREAD_ARG) + add_if_flag_compiles("-pthread" CMAKE_C_FLAGS) + endif() + if(CMAKE_THREAD_LIBS_INIT) + link_libraries("${CMAKE_THREAD_LIBS_INIT}") + endif() +else() + # Items requiring pthreads + list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_loading_thread.c) +endif() + + if(${PLATFORM} MATCHES "Android") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c)