############################################################################### if (__nc_cxx) return () endif () set (__nc_cxx TRUE) ############################################################################### include (compile_flag) include (test_restrict) ############################################################################### append_compile_flag ("-std=c++1z") append_compile_flag ("-fpermissive") append_compile_flag ("/std:c++latest") ############################################################################### # find the gcc experimental filesystem library and append to libs if needed # # note, we specifically _cannot_ use find_library because it just makes wild # hardcoded guess and doesn't respect _all_ the system paths; specifically # something like /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/libstdc++.so won't get # discovered. if (NOT DEFINED __nc_cxx_stdcxxfs) foreach(lib "" stdc++fs) if (NOT __nc_cxx_stdcxxfs) try_compile( __nc_cxx_stdcxxfs ${CMAKE_CURRENT_BINARY_DIR} SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/nc_cxx_stdcxxfs.cpp LINK_LIBRARIES ${lib}) if (__nc_cxx_stdcxxfs) set (__nc_cxx_stdcxxfs "${lib}" CACHE INTERNAL "library required for c++ filesystem") endif () endif () endforeach() if (NOT __nc_cxx_stdcxxfs) set (__nc_cxx_stdcxxfs "") endif () endif () link_libraries (${__nc_cxx_stdcxxfs}) ############################################################################### test_restrict(RESTRICT_KEYWORD) add_definitions("-Drestrict=${RESTRICT_KEYWORD}") ############################################################################### append_compile_flag("-pipe") append_compile_flag("-fno-deduce-init-list") append_compile_flag("-fvisibility=hidden")