mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2025-12-01 12:11:20 +00:00
34 lines
1.1 KiB
CMake
34 lines
1.1 KiB
CMake
# Check if compiler really supports C++17. If not, require boost::filesystem.
|
|
# We also provide an option in the main CMakeLists.txt to force the use of boost.
|
|
|
|
set(_old_CMAKE_CXX_STANDARD ${CMAKE_CXX_STANDARD})
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
include(CheckSourceCompiles)
|
|
check_source_compiles(CXX
|
|
"#include <filesystem>
|
|
int main(){
|
|
std::filesystem::path p;
|
|
return 0;
|
|
}"
|
|
STD_FILESYSTEM_EXISTS
|
|
)
|
|
set(CMAKE_CXX_STANDARD ${_old_CMAKE_CXX_STANDARD})
|
|
unset(_old_CMAKE_CXX_STANDARD)
|
|
|
|
if(NOT ENABLE_BOOST_FILESYSTEM AND STD_FILESYSTEM_EXISTS)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
set(PROJECTM_FILESYSTEM_NAMESPACE std)
|
|
set(PROJECTM_FILESYSTEM_INCLUDE <filesystem>)
|
|
set(PROJECTM_FILESYSTEM_USE_BOOST FALSE)
|
|
else()
|
|
find_package(Boost REQUIRED COMPONENTS Filesystem)
|
|
|
|
set(PROJECTM_FILESYSTEM_NAMESPACE boost)
|
|
set(PROJECTM_FILESYSTEM_INCLUDE <boost/filesystem.hpp>)
|
|
set(PROJECTM_FILESYSTEM_USE_BOOST TRUE)
|
|
|
|
set(PROJECTM_FILESYSTEM_LIBRARY Boost::filesystem)
|
|
set(ENABLE_BOOST_FILESYSTEM ON CACHE BOOL "Compiler does not support std::filesystem, reverting to boost::filesystem." FORCE)
|
|
endif()
|