Skip to content

Commit 7f97c3b

Browse files
authored
Merge pull request #156 from OpenSEMBA/dev
Reorganizing compilation flags.
2 parents 181906f + 6847a75 commit 7f97c3b

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

CMakeLists.txt

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,11 @@ option(SEMBA_FDTD_ENABLE_HDF "Use HDF" ON)
1717
option(SEMBA_FDTD_ENABLE_MTLN "Use MTLN" ON)
1818
option(SEMBA_FDTD_ENABLE_SMBJSON "Use smbjson" ON)
1919
option(SEMBA_FDTD_ENABLE_DOUBLE_PRECISION "Use double precision (CompileWithReal8)" OFF)
20+
2021
option(SEMBA_FDTD_ENABLE_TEST "Compile tests" ON)
21-
option(SEMBA_FDTD_ENABLE_INTEL_XHOST_OPTIMIZATION "Enables the -xHost optimization flag (not supported in github actions)" OFF)
22+
23+
option(SEMBA_FDTD_ENABLE_INTEL_XHOST_OPTIMIZATION "When compiling in Release, enables the -xHost optimization flag (not supported in github actions)" OFF)
24+
option(SEMBA_FDTD_ENABLE_INTEL_IPO "When compiling in Release, enables the interprocedural optimization" ON)
2225

2326
option(SEMBA_FDTD_EXECUTABLE "Compiles executable" ON)
2427
option(SEMBA_FDTD_MAIN_LIB "Compiles main library" ON)
@@ -69,14 +72,22 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
6972
set(CMAKE_CXX_FLAGS "-qopenmp")
7073
set(CMAKE_Fortran_FLAGS "-qopenmp -fpp -static-intel")
7174

72-
set(CMAKE_C_FLAGS_RELEASE "-O3 -ipo")
73-
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ipo")
74-
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -ipo -fp-model fast=2w")
75-
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
76-
if(SEMBA_FDTD_ENABLE_INTEL_XHOST_OPTIMIZATION)
77-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -xHost")
78-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -xHost")
79-
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -xHost")
75+
if (CMAKE_BUILD_TYPE STREQUAL "Release")
76+
set(CMAKE_C_FLAGS_RELEASE "-O3")
77+
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
78+
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -fp-model fast=2w")
79+
80+
if(SEMBA_FDTD_ENABLE_INTEL_IPO)
81+
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
82+
else()
83+
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF)
84+
endif()
85+
86+
if(SEMBA_FDTD_ENABLE_INTEL_XHOST_OPTIMIZATION)
87+
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -xHost")
88+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -xHost")
89+
set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -xHost")
90+
endif()
8091
endif()
8192

8293
set(CMAKE_Fortran_FLAGS_DEBUG "-check all,nouninit -debug full -traceback")
@@ -88,9 +99,9 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
8899
set(CMAKE_CXX_FLAGS "-qopenmp -diag-disable=10441")
89100
set(CMAKE_Fortran_FLAGS "-fpp -qopenmp -diag-disable=8889 -static-intel")
90101

91-
set(CMAKE_C_FLAGS_RELEASE "-O3 -ipo")
92-
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ipo")
93-
set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -ipo")
102+
set(CMAKE_C_FLAGS_RELEASE "-O3")
103+
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
104+
set(CMAKE_Fortran_FLAGS_RELEASE "-O3")
94105
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
95106
if(SEMBA_FDTD_ENABLE_INTEL_XHOST_OPTIMIZATION)
96107
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -xHost")

0 commit comments

Comments
 (0)