diff --git a/cmake/GaudiToolbox.cmake b/cmake/GaudiToolbox.cmake index db5c60681b8dd94cb3c3bc2aac7ef79413df5027..8cfa5a9fa018c807a4dee8f5e21be904216d7300 100644 --- a/cmake/GaudiToolbox.cmake +++ b/cmake/GaudiToolbox.cmake @@ -127,6 +127,28 @@ set(GAUDI_INSTALL_CONFIGDIR "lib/cmake/${PROJECT_NAME}" CACHE STRING "Install cm set(scan_dict_deps_command ${GAUDI_TOOLBOX_DIR}/scan_dict_deps.py CACHE INTERNAL "command to use to scan dependencies of dictionary headers") +##################################### PGO ##################################### + +if("${PGO}" MATCHES "GENERATE") + message("PGO generate") + if(DEFINED PGO_PATH) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-generate=${PGO_PATH}") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-generate") + endif() +endif() +if("${PGO}" MATCHES "USE") + message("PGO use") + if(DEFINED PGO_PATH) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-use=${PGO_PATH} -fprofile-correction") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-use -fprofile-correction") + endif() + include(CheckIPOSupported) + check_ipo_supported() + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) +endif() + ################################## Functions ################################## # Helper function that replaces imported targets in ``<var>`` with local ones,