Mentions légales du service

Skip to content
Snippets Groups Projects
Commit d61a002e authored by François Trahay's avatar François Trahay
Browse files

otf2: improve cmake detection

parent 5903ff8e
No related branches found
No related tags found
2 merge requests!109Improve the OTF2 parser,!106fix Otf2
#
# Find the OTF2 libraries and include dir
# Find the OTF2 library
#
# OTF2_INCLUDE_DIR - Directories to include to use OTF2
# OTF2_LIBRARY - Files to link against to use OTF2
# OTF2_FOUND - When false, don't try to use OTF2
#
# OTF2_DIR can be used to make it simpler to find the various include
# directories and compiled libraries when OTF2 was not installed in the
# usual/well-known directories (e.g. because you made an in tree-source
# compilation or because you installed it in an "unusual" directory).
# Just set OTF2_DIR it to your specific installation directory
#
FIND_LIBRARY(OTF2_LIBRARY otf2
PATHS
/usr/lib
/usr/local/lib
${OTF2_DIR}/lib
)
# OTF2_LIBRARY_PATH - Files to link against to use OTF2
# OTF2_CONFIG - Path to otf2-config
find_program(OTF2_CONFIG otf2-config REQUIRED)
find_program(OTF2_PRINT otf2-print REQUIRED)
IF(OTF2_LIBRARY)
GET_FILENAME_COMPONENT(OTF2_GUESSED_INCLUDE_DIR_tmp "${OTF2_LIBRARY}" PATH)
STRING(REGEX REPLACE "lib$" "include" OTF2_GUESSED_INCLUDE_DIR "${OTF2_GUESSED_INCLUDE_DIR_tmp}")
ENDIF(OTF2_LIBRARY)
FIND_PATH( OTF2_INCLUDE_DIR otf2/otf2.h
PATHS
${OTF2_GUESSED_INCLUDE_DIR}
${OTF2_DIR}/include
/usr/include
/usr/local/include
${CMAKE_SOURCE_DIR}/externals/otf2/include/
IF(NOT OTF2_CONFIG OR NOT EXISTS ${OTF2_CONFIG})
MESSAGE(STATUS "Cannot find otf2-config")
SET(OTF2_VERSION ${OTF2_REQUIRED_VERSION})
ELSE()
message(STATUS "OTF2 installation found. (using ${OTF2_CONFIG})")
execute_process(COMMAND ${OTF2_CONFIG} "--cppflags" OUTPUT_VARIABLE OTF2_INCLUDE_DIR)
STRING(REPLACE "\n" "" OTF2_INCLUDE_DIR ${OTF2_INCLUDE_DIR})
STRING(REPLACE "-I" "" OTF2_INCLUDE_DIR ${OTF2_INCLUDE_DIR})
execute_process(COMMAND ${OTF2_CONFIG} "--ldflags" OUTPUT_VARIABLE _LINK_LD_ARGS)
STRING( REPLACE " " ";" _LINK_LD_ARGS ${_LINK_LD_ARGS} )
FOREACH( _ARG ${_LINK_LD_ARGS} )
IF(${_ARG} MATCHES "^-L")
STRING(REGEX REPLACE "^-L" "" _ARG ${_ARG})
STRING(STRIP "${_ARG}" _ARG)
SET(OTF2_LINK_DIRS ${OTF2_LINK_DIRS} ${_ARG})
ENDIF(${_ARG} MATCHES "^-L")
ENDFOREACH(_ARG)
execute_process(COMMAND ${OTF2_CONFIG} "--libs" OUTPUT_VARIABLE _LINK_LD_ARGS)
STRING( REPLACE " " ";" _LINK_LD_ARGS ${_LINK_LD_ARGS} )
FOREACH( _ARG ${_LINK_LD_ARGS} )
IF(${_ARG} MATCHES "^-l")
STRING(REGEX REPLACE "^-l" "" _ARG "${_ARG}")
STRING(STRIP "${_ARG}" _ARG)
FIND_LIBRARY(_OTF2_LIB_FROM_ARG NAMES ${_ARG}
HINTS ${OTF2_LINK_DIRS} NO_DEFAULT_PATH
)
IF(${_ARG} STREQUAL "otf2" OR ${_ARG} STREQUAL "open-trace-format2")
SET(OTF2_LIBRARY ${_OTF2_LIB_FROM_ARG})
ELSE()
IF(_OTF2_LIB_FROM_ARG)
LIST(APPEND OTF2_LIBRARIES ${_OTF2_LIB_FROM_ARG})
ENDIF(_OTF2_LIB_FROM_ARG)
ENDIF()
UNSET(_OTF2_LIB_FROM_ARG CACHE)
ENDIF(${_ARG} MATCHES "^-l")
ENDFOREACH(_ARG)
execute_process(COMMAND ${OTF2_CONFIG} "--version" OUTPUT_VARIABLE OTF2_VERSION)
STRING( REPLACE "otf2-config: version " "" OTF2_VERSION ${OTF2_VERSION} )
STRING( REPLACE "\n" "" OTF2_VERSION ${OTF2_VERSION} )
STRING( REPLACE "." ";" _VERSION ${OTF2_VERSION} )
LIST( GET _VERSION 0 OTF2_MAJOR_VERSION)
LIST( GET _VERSION 1 OTF2_MINOR_VERSION)
ENDIF()
include (FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OTF2
FOUND_VAR OTF2_FOUND
REQUIRED_VARS OTF2_CONFIG OTF2_LIBRARY OTF2_INCLUDE_DIR
VERSION_VAR OTF2_VERSION
)
IF( OTF2_INCLUDE_DIR )
IF( OTF2_LIBRARY )
SET( OTF2_FOUND "YES" )
MARK_AS_ADVANCED( OTF2_DIR )
MARK_AS_ADVANCED( OTF2_INCLUDE_DIR )
MARK_AS_ADVANCED( OTF2_LIBRARY )
ENDIF( OTF2_LIBRARY )
ENDIF( OTF2_INCLUDE_DIR )
IF( NOT OTF2_FOUND )
MESSAGE("OTF2 installation was not found. Please provide OTF2_DIR:")
MESSAGE(" - through the GUI when working with ccmake, ")
MESSAGE(" - as a command line argument when working with cmake e.g. ")
MESSAGE(" cmake .. -DOTF2_DIR:PATH=/usr/local/otf ")
MESSAGE("Note: the following message is triggered by cmake on the first ")
MESSAGE(" undefined necessary PATH variable (e.g. OTF2_INCLUDE_DIR).")
MESSAGE(" Providing OTF2_DIR (as above described) is probably the")
MESSAGE(" simplest solution unless you have a really customized/odd")
MESSAGE(" OTF2 installation...")
SET(OTF2_DIR "" CACHE PATH "Root of OTF2 install tree." )
ENDIF( NOT OTF2_FOUND )
if(NOT OTF2_FOUND)
unset(OTF2_CONFIG)
unset(OTF2_CONFIG CACHE)
unset(OTF2_LINK_DIRS)
unset(OTF2_LIBRARIES)
endif()
mark_as_advanced(OTF2_LIBRARY)
......@@ -413,10 +413,6 @@ include_directories(
${QTCOLORPICKERDIR}
)
if(VITE_ENABLE_OTF2)
link_directories(${OTF2_LIBRARY_DIR})
endif()
#resource
if(WIN32)
set(VITE_RES
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment