Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Markus Holzer
waLBerla
Commits
d64fefb4
Commit
d64fefb4
authored
Mar 25, 2022
by
Dominik Thoennes
Browse files
Non apple clang also does not support march native on arm64; add output for trycompile if it fails
parent
2c1a52f4
Changes
1
Hide whitespace changes
Inline
Side-by-side
CMakeLists.txt
View file @
d64fefb4
...
...
@@ -365,7 +365,7 @@ endif()
# architecture optimization
if
(
WALBERLA_OPTIMIZE_FOR_LOCALHOST
)
if
(
WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG
)
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"AppleClang"
AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL
"arm64"
)
if
(
(
CMAKE_CXX_COMPILER_ID STREQUAL
"AppleClang"
OR CMAKE_CXX_COMPILER_ID STREQUAL
"Clang"
)
AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL
"arm64"
)
# no -march=native available on this compiler, but there is currently only one such processor
else
()
add_flag
(
CMAKE_CXX_FLAGS
"-march=native"
)
...
...
@@ -487,7 +487,7 @@ endif()
############################################################################################################################
try_compile
(
WALBERLA_USE_STD_FILESYSTEM
"
${
CMAKE_CURRENT_BINARY_DIR
}
"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_FILESYSTEM COPY_FILE
"
${
CMAKE_CURRENT_BINARY_DIR
}
/TestStdFilesystem"
)
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_FILESYSTEM COPY_FILE
"
${
CMAKE_CURRENT_BINARY_DIR
}
/TestStdFilesystem"
OUTPUT_VARIABLE TRY_COMPILE_OUTPUT
)
if
(
WALBERLA_USE_STD_FILESYSTEM
)
# detect https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90050 by checking whether it segfaults
execute_process
(
COMMAND
"
${
CMAKE_CURRENT_BINARY_DIR
}
/TestStdFilesystem"
OUTPUT_QUIET RESULT_VARIABLE WALBERLA_STD_FILESYSTEM_WORKS
)
...
...
@@ -496,14 +496,14 @@ if( WALBERLA_USE_STD_FILESYSTEM AND WALBERLA_STD_FILESYSTEM_WORKS EQUAL 0 )
message
(
STATUS
"Found std::filesystem"
)
else
()
try_compile
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
"
${
CMAKE_CURRENT_BINARY_DIR
}
"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
)
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
OUTPUT_VARIABLE TRY_COMPILE_OUTPUT
)
if
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
)
message
(
STATUS
"Found std::experimental::filesystem"
)
endif
()
if
(
NOT WALBERLA_CXX_COMPILER_IS_MSVC AND NOT WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
)
unset
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM CACHE
)
try_compile
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
"
${
CMAKE_CURRENT_BINARY_DIR
}
"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM LINK_LIBRARIES stdc++fs
)
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM LINK_LIBRARIES stdc++fs
OUTPUT_VARIABLE TRY_COMPILE_OUTPUT
)
if
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
)
message
(
STATUS
"Found std::experimental::filesystem in libstdc++fs"
)
list
(
APPEND SERVICE_LIBS -lstdc++fs
)
...
...
@@ -512,14 +512,15 @@ else()
if
(
NOT WALBERLA_CXX_COMPILER_IS_MSVC AND NOT WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
)
unset
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM CACHE
)
try_compile
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
"
${
CMAKE_CURRENT_BINARY_DIR
}
"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/TestStdFilesystem.cpp"
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM LINK_LIBRARIES c++experimental
)
COMPILE_DEFINITIONS -DWALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM LINK_LIBRARIES c++experimental
OUTPUT_VARIABLE TRY_COMPILE_OUTPUT
)
if
(
WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM
)
message
(
STATUS
"Found std::experimental::filesystem in libc++experimental"
)
list
(
APPEND SERVICE_LIBS -lc++experimental
)
endif
()
endif
()
if
(
NOT WALBERLA_USE_STD_EXPERIMENTAL_FILESYSTEM AND NOT WALBERLA_USE_STD_FILESYSTEM
)
message
(
FATAL_ERROR
"Neither std::filesystem nor std::experimental::filesystem are available"
)
message
(
WARNING
${
TRY_COMPILE_OUTPUT
}
)
message
(
FATAL_ERROR
"Neither std::filesystem nor std::experimental::filesystem are available"
)
endif
()
endif
()
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment