Loading CMakeLists.txt +9 −2 Original line number Diff line number Diff line Loading @@ -81,10 +81,10 @@ set( CMAKE_CXX_STANDARD 14 ) set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS OFF ) # set Debug/Release options # set default build options set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wall -Wno-unused-local-typedefs -Wno-unused-variable -Wno-unknown-pragmas" ) set( CMAKE_CXX_FLAGS_DEBUG "-g" ) set( CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -mtune=native -DNDEBUG" ) set( CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" ) # pass -rdynamic only in Debug mode set( CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "" ) set( CMAKE_SHARED_LIBRARY_LINK_C_FLAGS_DEBUG "-rdynamic" ) Loading @@ -96,6 +96,13 @@ set( CMAKE_SHARED_LINKER_FLAGS "" ) set( CMAKE_SHARED_LINKER_FLAGS_DEBUG "-rdynamic" ) set( CMAKE_SHARED_LINKER_FLAGS_RELEASE "" ) # set additional Debug/Release options using generator expressions # (that way we can exclude some options for specific targets, see https://stackoverflow.com/a/59734798 for details) add_compile_options( # GOTCHA: CMake uses semicolons as list item separator, spaces would lead to a single argument inside double-quotes on the command line "$<$<CONFIG:RELEASE>:-march=native;-mtune=native>" ) # disable GCC's infamous "maybe-uninitialized" warning (it produces mostly false positives) if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized" ) Loading src/Python/pytnl/tnl/CMakeLists.txt +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,16 @@ pybind11_add_module( pytnl ${sources} ) # rename the shared library to tnl.cpython-XXm-x86_64-linux-gnu.so set_target_properties( pytnl PROPERTIES LIBRARY_OUTPUT_NAME tnl ) # Skip -march=native -mtune=native for pytnl - optimizing python bindings for # a specific architecture is not very useful and prevents using Python tools on # hybrid clusters. get_target_property( pytnl_COMPILE_OPTIONS pytnl COMPILE_OPTIONS ) if( pytnl_COMPILE_OPTIONS ) string( REPLACE "-march=native" "" pytnl_COMPILE_OPTIONS "${pytnl_COMPILE_OPTIONS}" ) string( REPLACE "-mtune=native" "" pytnl_COMPILE_OPTIONS "${pytnl_COMPILE_OPTIONS}" ) set_target_properties( pytnl PROPERTIES COMPILE_OPTIONS "${pytnl_COMPILE_OPTIONS}" ) endif() # We have bindings for unsafe objects (e.g. Array::operator[]) where assertion # is the only safeguard, so we need to translate the TNL::AssertionError to # Python's AssertionError. Loading Loading
CMakeLists.txt +9 −2 Original line number Diff line number Diff line Loading @@ -81,10 +81,10 @@ set( CMAKE_CXX_STANDARD 14 ) set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS OFF ) # set Debug/Release options # set default build options set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Wall -Wno-unused-local-typedefs -Wno-unused-variable -Wno-unknown-pragmas" ) set( CMAKE_CXX_FLAGS_DEBUG "-g" ) set( CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -mtune=native -DNDEBUG" ) set( CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" ) # pass -rdynamic only in Debug mode set( CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "" ) set( CMAKE_SHARED_LIBRARY_LINK_C_FLAGS_DEBUG "-rdynamic" ) Loading @@ -96,6 +96,13 @@ set( CMAKE_SHARED_LINKER_FLAGS "" ) set( CMAKE_SHARED_LINKER_FLAGS_DEBUG "-rdynamic" ) set( CMAKE_SHARED_LINKER_FLAGS_RELEASE "" ) # set additional Debug/Release options using generator expressions # (that way we can exclude some options for specific targets, see https://stackoverflow.com/a/59734798 for details) add_compile_options( # GOTCHA: CMake uses semicolons as list item separator, spaces would lead to a single argument inside double-quotes on the command line "$<$<CONFIG:RELEASE>:-march=native;-mtune=native>" ) # disable GCC's infamous "maybe-uninitialized" warning (it produces mostly false positives) if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized" ) Loading
src/Python/pytnl/tnl/CMakeLists.txt +10 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,16 @@ pybind11_add_module( pytnl ${sources} ) # rename the shared library to tnl.cpython-XXm-x86_64-linux-gnu.so set_target_properties( pytnl PROPERTIES LIBRARY_OUTPUT_NAME tnl ) # Skip -march=native -mtune=native for pytnl - optimizing python bindings for # a specific architecture is not very useful and prevents using Python tools on # hybrid clusters. get_target_property( pytnl_COMPILE_OPTIONS pytnl COMPILE_OPTIONS ) if( pytnl_COMPILE_OPTIONS ) string( REPLACE "-march=native" "" pytnl_COMPILE_OPTIONS "${pytnl_COMPILE_OPTIONS}" ) string( REPLACE "-mtune=native" "" pytnl_COMPILE_OPTIONS "${pytnl_COMPILE_OPTIONS}" ) set_target_properties( pytnl PROPERTIES COMPILE_OPTIONS "${pytnl_COMPILE_OPTIONS}" ) endif() # We have bindings for unsafe objects (e.g. Array::operator[]) where assertion # is the only safeguard, so we need to translate the TNL::AssertionError to # Python's AssertionError. Loading