@@ -17,8 +17,11 @@ option(SEMBA_FDTD_ENABLE_HDF "Use HDF" ON)
1717option (SEMBA_FDTD_ENABLE_MTLN "Use MTLN" ON )
1818option (SEMBA_FDTD_ENABLE_SMBJSON "Use smbjson" ON )
1919option (SEMBA_FDTD_ENABLE_DOUBLE_PRECISION "Use double precision (CompileWithReal8)" OFF )
20+
2021option (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
2326option (SEMBA_FDTD_EXECUTABLE "Compiles executable" ON )
2427option (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