Skip to content

Commit

Permalink
Add summary of compiler flags for foam-python
Browse files Browse the repository at this point in the history
use -march=native in Python code.
  • Loading branch information
zhujun98 committed Jun 16, 2020
1 parent 7483d1f commit a3ceb82
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 5 deletions.
11 changes: 11 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,17 @@ if(BUILD_FOAM_TESTS)
add_subdirectory(test)
endif()

# ============
# Build flags
# ============

if(CMAKE_CXX_COMPILER_VERSION)
set(FOAM_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (version ${CMAKE_CXX_COMPILER_VERSION})")
else()
set(FOAM_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}")
endif()
string(STRIP "${FOAM_COMPILER_STR}" FOAM_COMPILER_STR)

# ============
# Installation
# ============
Expand Down
2 changes: 1 addition & 1 deletion docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ In your Anaconda_ environment, run the following commands:
$ ln -s ${CONDA_PREFIX}/bin/x86_64-conda_cos6-linux-gnu-gcc ${CONDA_PREFIX}/bin/gcc
$ ln -s ${CONDA_PREFIX}/bin/x86_64-conda_cos6-linux-gnu-g++ ${CONDA_PREFIX}/bin/g++
# gcc-6.1 was used before version 0.8.4
# gcc-6.1 was used prior to version 0.9.0
# $ conda install -c omgarcia gcc-6
# $ conda install -c anaconda libstdcxx-ng
Expand Down
29 changes: 29 additions & 0 deletions src/extra_foam/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,35 @@
# All rights reserved. #
###################################################################

# ============
# Build flags
# ============

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel")
if(NOT CMAKE_CXX_FLAGS MATCHES "-march")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
endif()

message(STATUS "=========================== EXtra-foam Python ============================")
message(STATUS "")
message(STATUS " C++ Compiler: ${FOAM_COMPILER_STR}")
message(STATUS " C++ flags (Release): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
message(STATUS " C++ flags (Debug): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")
message(STATUS " Linker flags (Release): ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
message(STATUS " Linker flags (Debug): ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
message(STATUS "")
message(STATUS " USE TBB in FOAM/XTENSOR: ${FOAM_USE_TBB}/${XTENSOR_USE_TBB}")
message(STATUS " USE XSIMD in FOAM/XTENSOR: ${FOAM_USE_XSIMD}/${XTENSOR_USE_XSIMD}")
message(STATUS "")
message(STATUS "==========================================================================")

# ===============
# Build libraries
# ===============

set(_FOAM_MODULE_FILES
f_canny.cpp
f_datamodel.cpp
Expand Down
20 changes: 16 additions & 4 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@
# All rights reserved. #
###################################################################

if(NOT CMAKE_CXX_FLAGS MATCHES "-march")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()

# Download and unpack googletest at configure time
configure_file(downloadGTest.cmake.in googletest-download/CMakeLists.txt)

Expand Down Expand Up @@ -61,6 +57,22 @@ set(_FOAM_UNITTEST_TARGETS_NEED_BLAS

set(CMAKE_BUILD_RPATH "${CMAKE_PREFIX_PATH}/lib")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel")
if(NOT CMAKE_CXX_FLAGS MATCHES "-march")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
endif()

if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7")
# solve the linker error with test_tbb.cpp:
# undefined reference to symbol 'clock_gettime@@GLIBC_2.2.5'
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lrt")
endif()
endif()

foreach(pathname IN LISTS _FOAM_UNITTESTS)
get_filename_component(filename ${pathname} NAME)
string(REPLACE ".cpp" "" targetname ${filename})
Expand Down

0 comments on commit a3ceb82

Please sign in to comment.