diff --git a/cmake_modules/FindSwiften.cmake b/cmake_modules/FindSwiften.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9b0436d98956f5d8ccea2be6fd6b39a0c0181791 --- /dev/null +++ b/cmake_modules/FindSwiften.cmake @@ -0,0 +1,63 @@ +FIND_LIBRARY(SWIFTEN_LIBRARY NAMES Swiften Swiften3 Swiften4 HINTS ../lib) +FIND_PATH(SWIFTEN_INCLUDE_DIR NAMES "Swiften/Swiften.h" PATH_SUFFIXES libSwiften Swiften HINTS ../include) + +if( SWIFTEN_LIBRARY AND SWIFTEN_INCLUDE_DIR ) + find_program(SWIFTEN_CONFIG_EXECUTABLE NAMES swiften-config DOC "swiften-config executable" HINTS ../bin) + set( SWIFTEN_CFLAGS "" ) + if (SWIFTEN_CONFIG_EXECUTABLE) + # Libs + execute_process( + COMMAND ${SWIFTEN_CONFIG_EXECUTABLE} --libs + OUTPUT_VARIABLE SWIFTEN_LIB) + string(REGEX REPLACE "[\r\n]" " " SWIFTEN_LIB "${SWIFTEN_LIB}") + string(REGEX REPLACE " +$" "" SWIFTEN_LIB "${SWIFTEN_LIB}") + set(SWIFTEN_LIBRARY "") + if (APPLE) + string(REGEX MATCHALL "-framework [A-Za-z]+" APPLE_FRAMEWORKS "${SWIFTEN_LIB}") + foreach(framework ${APPLE_FRAMEWORKS}) + list(APPEND SWIFTEN_LIBRARY ${framework} ) + endforeach(framework) + string(REGEX REPLACE "-framework [A-Za-z]+" "" SWIFTEN_LIB "${SWIFTEN_LIB}") + endif(APPLE) + string(REGEX REPLACE " " ";" SWIFTEN_LIB "${SWIFTEN_LIB}") + foreach(f ${SWIFTEN_LIB}) + STRING(SUBSTRING ${f} 0 2 f_out) + STRING(COMPARE EQUAL ${f_out} "/L" IS_PATH) + if(${IS_PATH}) + string(REGEX REPLACE "/LIBPATH:" "" f_replaced "${f}") + message("Added link directory: ${f_replaced}") + link_directories(${f_replaced}) + else() + list(APPEND SWIFTEN_LIBRARY ${f}) + endif() + endforeach(f) + + # Version + execute_process( + COMMAND ${SWIFTEN_CONFIG_EXECUTABLE} --version + OUTPUT_VARIABLE SWIFTEN_VERSION) + string(REGEX REPLACE "[\r\n]" " " SWIFTEN_VERSION "${SWIFTEN_VERSION}") + string(REGEX REPLACE " +$" "" SWIFTEN_VERSION "${SWIFTEN_VERSION}") + string(REGEX REPLACE "swiften-config " "" SWIFTEN_VERSION "${SWIFTEN_VERSION}") + + if("${SWIFTEN_VERSION}" STRGREATER "4" AND NOT MSVC) + message( STATUS "Found Swiften > 4 requesting C++11") + set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") + endif() + if("${SWIFTEN_VERSION}" STRLESS "4") + set(CMAKE_CXX_FLAGS "-DBOOST_SIGNALS_NO_DEPRECATION_WARNING ${CMAKE_CXX_FLAGS}") + endif() + + set( SWIFTEN_FOUND 1 ) + else() + message( STATUS "Could NOT find swiften-config" ) + endif() + + if (SWIFTEN_FOUND) + set( SWIFTEN_INCLUDE_DIR ${SWIFTEN_INCLUDE_DIR} ) + message( STATUS "Found libSwiften: ${SWIFTEN_LIBRARY}, ${SWIFTEN_INCLUDE_DIR}") + endif() + +else( SWIFTEN_LIBRARY AND SWIFTEN_INCLUDE_DIR ) + message( STATUS "Could NOT find libSwiften" ) +endif( SWIFTEN_LIBRARY AND SWIFTEN_INCLUDE_DIR )