mirror of
https://git.mirrors.martin98.com/https://github.com/gulrak/filesystem
synced 2025-06-04 11:13:58 +08:00

commit 2bef80eec1fe16a23e34143b9a5a32b04d612ed2 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 20:11:36 2021 +0200 wip commit e8c063d7ea66d2bdcbd1535b12dac1ca24afc7b9 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 20:05:04 2021 +0200 wip commit aafdebf274cafacfd6e1472621b015e48d547412 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 19:50:39 2021 +0200 wip commit b36f13655a09c3bac62afc6079ba010eb934493d Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 18:05:35 2021 +0200 wip commit eee191875c0d6816022342d341eaa43f5f83c4ff Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 17:32:35 2021 +0200 more wip commit 0ff949ab5f21055298aee8d7fcdda3a10f61a69c Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 17:12:18 2021 +0200 wip commit ca68861cb4c4e14079bb3ab2e0c9725b0a3aece8 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 16:31:32 2021 +0200 wip commit e188a3d2cca4f4bb84c3fa8f49e5de34ec731713 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 16:21:51 2021 +0200 wip commit b8383ac22cdb5bab3a4f527a1c46dafd009b2f11 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 16:15:42 2021 +0200 Workflow wip... commit 162416fe2cf2922382c7c7fd34c648b4782d48be Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 15:57:31 2021 +0200 Workflow wip... commit 891be4cdd72b23ec86bdc0935d9201841c2c07bc Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 15:52:24 2021 +0200 Workflow wip... commit 5c2ee653f41a38858cfaf602df639276ae1c7fbb Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 15:44:59 2021 +0200 Workflow wip... commit bca8df081885aed67ce0952f20aa2e4a96072a04 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 15:40:23 2021 +0200 Workflow wip... commit d94d8de098d954bffae65aec789d72c5c0b1301b Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sun Jul 4 15:34:16 2021 +0200 Workflow wip... commit 19f301992b733e699054050fdf552c982fea300c Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sat Jul 3 21:54:11 2021 +0200 Workflow wip... commit 495457726fc844d014e49b56acd6367160f4322b Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sat Jul 3 18:38:04 2021 +0200 workflow wip commit fde42cd4a5f865807703ff6814d9d0e8dfbde030 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sat Jul 3 18:34:47 2021 +0200 Testing more generic workflow. commit ead40cc153814e23ef3ddcb654ed8c57c10f54a6 Author: Steffen Schuemann <s.schuemann@pobox.com> Date: Sat Jul 3 16:51:25 2021 +0200 Work on using GitHub workflows.
65 lines
3.3 KiB
CMake
65 lines
3.3 KiB
CMake
macro(AddExecutableWithStdFS targetName)
|
|
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 7.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0))
|
|
if(APPLE)
|
|
include_directories(/usr/local/opt/llvm/include)
|
|
link_directories(/usr/local/opt/llvm/lib)
|
|
endif()
|
|
add_executable(${targetName} ${ARGN})
|
|
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD 17)
|
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
|
|
if(APPLE)
|
|
target_link_libraries(${targetName} -lc++fs)
|
|
else()
|
|
target_compile_options(${targetName} PRIVATE "-stdlib=libc++")
|
|
target_link_libraries(${targetName} -stdlib=libc++ -lc++fs $<$<PLATFORM_ID:Linux>:rt>)
|
|
endif()
|
|
else()
|
|
if(NOT APPLE)
|
|
target_compile_options(${targetName} PRIVATE "-stdlib=libc++")
|
|
target_link_libraries(${targetName} -stdlib=libc++)
|
|
endif()
|
|
endif()
|
|
target_compile_definitions(${targetName} PRIVATE USE_STD_FS)
|
|
endif()
|
|
|
|
if (CMAKE_COMPILER_IS_GNUCXX AND (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 8.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0))
|
|
add_executable(${targetName} ${ARGN})
|
|
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD 17)
|
|
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
|
|
target_link_libraries(${targetName} -lstdc++fs)
|
|
endif()
|
|
target_compile_options(${targetName} PRIVATE $<$<BOOL:${CYGWIN}>:-Wa,-mbig-obj>)
|
|
target_compile_definitions(${targetName} PRIVATE USE_STD_FS)
|
|
endif()
|
|
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC AND (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 19.15 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 19.15))
|
|
add_executable(${targetName} ${ARGN})
|
|
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD 17)
|
|
set_property(TARGET ${targetName} PROPERTY CXX_STANDARD_REQUIRED ON)
|
|
target_compile_options(${targetName} PRIVATE "/Zc:__cplusplus")
|
|
target_compile_definitions(${targetName} PRIVATE USE_STD_FS _CRT_SECURE_NO_WARNINGS)
|
|
endif()
|
|
|
|
endmacro()
|
|
|
|
macro(AddTestExecutableWithStdCpp cppStd)
|
|
add_executable(filesystem_test_cpp${cppStd} ${ARGN})
|
|
set_property(TARGET filesystem_test_cpp${cppStd} PROPERTY CXX_STANDARD ${cppStd})
|
|
target_link_libraries(filesystem_test_cpp${cppStd} ghc_filesystem)
|
|
target_compile_options(filesystem_test_cpp${cppStd} PRIVATE
|
|
$<$<BOOL:${EMSCRIPTEN}>:-s DISABLE_EXCEPTION_CATCHING=0>
|
|
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Werror -Wno-error=deprecated-declarations>
|
|
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wshadow -Wconversion -Wsign-conversion -Wpedantic -Wno-psabi -Werror -Wno-error=deprecated-declarations>
|
|
$<$<CXX_COMPILER_ID:MSVC>:/WX /wd4996>
|
|
$<$<BOOL:${CYGWIN}>:-Wa,-mbig-obj>
|
|
$<$<BOOL:${GHC_COVERAGE}>:--coverage>)
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
target_compile_definitions(filesystem_test_cpp${cppStd} PRIVATE _CRT_SECURE_NO_WARNINGS)
|
|
endif()
|
|
if(EMSCRIPTEN)
|
|
set_target_properties(filesystem_test_cpp${cppStd} PROPERTIES LINK_FLAGS "-g4 -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1")
|
|
endif()
|
|
ParseAndAddCatchTests(filesystem_test_cpp${cppStd})
|
|
endmacro()
|