From c0201b2eb983eb963f53fc23266c0e5cfae9f708 Mon Sep 17 00:00:00 2001 From: "Alexander Kutsan (GitHub)" Date: Thu, 5 Jan 2017 15:18:10 +0200 Subject: Revert "Fix/cmake files refactoring" --- CMakeLists.txt | 432 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 364 insertions(+), 68 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 443164f565..3252f7071d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2014, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,13 +28,9 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -cmake_minimum_required(VERSION 2.8.11) +cmake_minimum_required(VERSION 2.8.0) set (PROJECT smartDeviceLinkCore) -project (${PROJECT}) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/tools/cmake/modules/") - -include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) #Jenkins integration section #dont modify this section if you dont know details about integration with Jenkins!!! @@ -71,9 +67,9 @@ set(POLICY_OPTION "$ENV{POLICY_TYPE}") set(SECURITY_OPTION "$ENV{SECURITY_MODE}") set(COMPONENTS_DIR ${CMAKE_SOURCE_DIR}/src/components) set(SNAPSHOT_TAG "$ENV{SNAPSHOT_TAG}") + set(CMAKE_CXX_COMPILER $ENV{CMAKE_CXX_COMPILER}) set(CMAKE_C_COMPILER $ENV{CMAKE_C_COMPILER}) -set(BUILDDIR "$ENV{BUILDDIR}") if (ARCH_TYPE_OPTION) if (NOT (${ARCH_TYPE_OPTION} STREQUAL "x86") AND NOT (${ARCH_TYPE_OPTION} STREQUAL "armv7")) @@ -177,6 +173,13 @@ add_custom_target(genivi-tarball COMMAND tar -cz -C /tmp/GENIVI -f ${CMAKE_BINARY_DIR}/genivi.tar.gz . ) + +project (${PROJECT}) + +#ADD_DEPENDENCIES(${PROJECT} Policy) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") + # Please do not change compiler/linker flags if You do not know how particular # flag is handled by CMake set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}) @@ -228,15 +231,11 @@ endif(USE_DISTCC) if(ENABLE_SANITIZE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") - message(STATUS "Sanitizing enabled") endif() - if(ENABLE_GCOV) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") add_definitions(-DGCOV_ENABLED) - message(STATUS "GCOV enabled") endif() - set(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -s -O2") set(CMAKE_CXX_FLAGS_DEBUG " -DDEBUG -g3 -ggdb3") @@ -249,74 +248,137 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX") SET(EXTENDED_MEDIA_MODE OFF) endif() + if (BUILD_USB_SUPPORT) add_definitions(-DUSB_SUPPORT) find_package(UDev REQUIRED) - message(STATUS "USB support enabled") + message(STATUS "USB support is enabled") endif() + if (BUILD_BT_SUPPORT) add_definitions(-DBLUETOOTH_SUPPORT) - message(STATUS "Bluetooth support enabled") + message(STATUS "Bluetooth support is enabled") endif() if (BUILD_BACKTRACE_SUPPORT) add_definitions(-DBACKTRACE_SUPPORT) - message(STATUS "Backtrace support enabled") endif() if(ENABLE_LOG) add_definitions(-DENABLE_LOG) set(install-3rd_party_logger "install-3rd_party_logger") - message(STATUS "Logger enabled") endif() if (TELEMETRY_MONITOR) - add_definitions(-DTELEMETRY_MONITOR) - message(STATUS "Telemetry monitor enabled") + add_definitions(-DTELEMETRY_MONITOR) endif() if (ENABLE_EXTENDED_POLICY) - add_definitions(-DEXTENDED_POLICY) - message(STATUS "Extended policy enabled") + add_definitions(-DEXTENDED_POLICY) endif() # TODO(AK): check current OS here add_definitions(-DOS_POSIX) if (EXTENDED_MEDIA_MODE) - add_definitions(-DEXTENDED_MEDIA_MODE) - message(STATUS "Extended media mode enabled") - # required to find 'glibconfig.h' - find_package(PkgConfig) - pkg_check_modules(GLIB2 REQUIRED glib-2.0) - add_definitions(${GLIB2_CFLAGS}) +add_definitions(-DEXTENDED_MEDIA_MODE) +# required to find 'glibconfig.h' +find_package(PkgConfig) +pkg_check_modules(GLIB2 REQUIRED glib-2.0) +add_definitions(${GLIB2_CFLAGS}) +endif() + + +# --- Interface generator + +find_package(PythonInterp) +if(NOT PYTHONINTERP_FOUND) + message(STATUS "Python interpreter is not found") + message(STATUS "To install it type in the command line:") + message(STATUS "sudo apt-get install python") + message(FATAL_ERROR "Exiting!") +endif(NOT PYTHONINTERP_FOUND) + +if (HMI STREQUAL "qt") + cmake_minimum_required(VERSION 2.8.11) + if (CMAKE_SYSTEM_NAME STREQUAL "QNX") + set(qt_version "4.8.5") + else () + set(qt_version "5.1.0") + endif () + + execute_process( + COMMAND ${CMAKE_SOURCE_DIR}/FindQt.sh -v ${qt_version} + OUTPUT_VARIABLE qt_bin_dir + ) + message(STATUS "Binary directory Qt ${qt_version} is ${qt_bin_dir}") + set(ENV{PATH} ${qt_bin_dir}:$ENV{PATH}) + + if (CMAKE_SYSTEM_NAME STREQUAL "QNX") + find_package(Qt4 ${qt_version} REQUIRED QtCore QtGui QtDBus QtDeclarative) + else () + find_package(Qt5Core REQUIRED) + find_package(Qt5DBus REQUIRED) + find_package(Qt5Qml REQUIRED) + find_package(Qt5Quick REQUIRED) + set(qmlplugindump_binary ${qt_bin_dir}/qmlplugindump) + endif () endif() -if(HMI STREQUAL "qt") +set(INTEFRACE_GENERATOR "${PROJECT_SOURCE_DIR}/tools/InterfaceGenerator/Generator.py") +set(INTEFRACE_GENERATOR_CMD ${PYTHON_EXECUTABLE} -B ${INTEFRACE_GENERATOR}) +file(GLOB_RECURSE INTERFACE_GENERATOR_DEPENDENCIES "${PROJECT_SOURCE_DIR}/tools/InterfaceGenerator/*.*") + +macro (GenerateInterface arg_xml_name arg_namespace parser_type) + string(REGEX MATCH "^[a-zA-Z_0-9]*[^.]" file_name ${arg_xml_name}) # TODO: make expression more robust + + set(hpp_file + "${CMAKE_CURRENT_BINARY_DIR}/${file_name}.h" + "${CMAKE_CURRENT_BINARY_DIR}/${file_name}_schema.h" + ) + + set(cpp_file "${CMAKE_CURRENT_BINARY_DIR}/${file_name}_schema.cc") + set(full_xml_name "${CMAKE_CURRENT_SOURCE_DIR}/${arg_xml_name}") + + add_custom_command( OUTPUT ${hpp_file} ${cpp_file} + COMMAND ${INTEFRACE_GENERATOR_CMD} ${full_xml_name} ${arg_namespace} ${CMAKE_CURRENT_BINARY_DIR} "--parser-type" "${parser_type}" + DEPENDS ${INTERFACE_GENERATOR_DEPENDENCIES} ${full_xml_name} + COMMENT "Generating files:\n ${hpp_file}\n ${cpp_file}\nfrom:\n ${arg_xml_name} ..." + VERBATIM + ) + + include_directories ( + ${COMPONENTS_DIR}/smart_objects/include + ${COMPONENTS_DIR}/formatters/include/ + ${CMAKE_BINARY_DIR} + ) + + add_library("${file_name}" ${cpp_file}) +endmacro(GenerateInterface) + +# --- Useful macro +macro(create_test NAME SOURCES LIBS) + add_executable("${NAME}" ${CMAKE_SOURCE_DIR}/src/components/test_main.cc ${SOURCES}) + target_link_libraries("${NAME}" ${LIBS}) + target_link_libraries("${NAME}" Utils) if(CMAKE_SYSTEM_NAME STREQUAL "QNX") - set(qt_version "4.8.5") + add_test(${NAME} ${CMAKE_SOURCE_DIR}/qnx/remote_run_test.sh ${NAME}) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + add_test(NAME ${NAME} + COMMAND ${NAME} --gtest_output=xml:${CMAKE_BINARY_DIR}/test_results/) else() - set(qt_version "5.1.0") + add_test(${NAME} ${NAME}) endif() +endmacro(create_test) - execute_process( - COMMAND ${CMAKE_SOURCE_DIR}/FindQt.sh -v ${qt_version} - OUTPUT_VARIABLE qt_bin_dir - ) - message(STATUS "Binary directory Qt ${qt_version} is ${qt_bin_dir}") - set(ENV{PATH} ${qt_bin_dir}:$ENV{PATH}) +# --replace in list macro +macro(LIST_REPLACE LIST INDEX NEWVALUE) + list(INSERT ${LIST} ${INDEX} ${NEWVALUE}) + MATH(EXPR __INDEX "${INDEX} + 1") + list (REMOVE_AT ${LIST} ${__INDEX}) +endmacro(LIST_REPLACE) - if(CMAKE_SYSTEM_NAME STREQUAL "QNX") - find_package(Qt4 ${qt_version} REQUIRED QtCore QtGui QtDBus QtDeclarative) - else () - find_package(Qt5Core REQUIRED) - find_package(Qt5DBus REQUIRED) - find_package(Qt5Qml REQUIRED) - find_package(Qt5Quick REQUIRED) - set(qmlplugindump_binary ${qt_bin_dir}/qmlplugindump) - endif() -endif() # Building application @@ -355,9 +417,243 @@ endif() include_directories( ${COMPONENTS_DIR}/include ${COMPONENTS_DIR}/protocol/include +if (BUILD_TESTS) + ${COMPONENTS_DIR}/include/test endif () ) +# --- 3rd party libs +INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/src/3rd_party/set_3rd_party_paths.cmake) + +set(3RD_PARTY_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/3rd_party) +set(3RD_PARTY_BINARY_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src/3rd_party) + +set (install-3rd_party_logger_var "") +set (install-3rd_party_dbus_var "") + +if(NO_REBUILD_3RD_PARTY) + set(NO_REBUILD_3RD_PARTY_LOGGER ON) + set(NO_REBUILD_3RD_PARTY_DBUS ON) +endif() + +if(FORCE_3RD_PARTY) + if(NO_REBUILD_3RD_PARTY) + message(FATAL_ERROR "Please don't turn on both FORCE_3RD_PARTY and NO_REBUILD_3RD_PARTY at the same time.") + else() + set(FORCE_3RD_PARTY_LOGGER ON) + set(FORCE_3RD_PARTY_DBUS ON) + endif() +endif() + +if(ENABLE_LOG) + if(NO_REBUILD_3RD_PARTY_LOGGER) + message(STATUS "Not rebuilding logger.") + else() + if(FORCE_3RD_PARTY_LOGGER) + message(STATUS "Force to rebuild logger.") + + #build logger + add_custom_target(3rd_party_logger + make + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + + #install logger + #install either to default place with sudo or non-default plase without sudo. + #to install with sudo to non-default place use manual installation + add_custom_target(install-3rd_party_logger + COMMAND /bin/bash -c \"USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; + if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then + sudo -k \; + sudo make install\; + else + make install\; + fi\" + DEPENDS 3rd_party_logger + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + else() + #build logger + add_custom_target(3rd_party_logger + COMMAND /bin/bash -c \"cd ${CMAKE_CURRENT_SOURCE_DIR} && + grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]\; then + VAR1=\\$$\( readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 2>/dev/null\)\; + VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\; + VAR2=-1\; + cd ${CMAKE_CURRENT_SOURCE_DIR}\; + git log . 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]; then + VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/apache-log4cxx-0.10.0\)\; + fi\; + if [ \\$$VAR1 != \\$$VAR2 ]\; then + echo " Need to rebuild logger. " \; + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make\; + else + echo " Logger is actual. " \; + fi\; + else + echo " Need to build logger. " \; + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make\; + fi\" + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + + #install logger + #install either to default place with sudo or non-default plase without sudo. + #to install with sudo to non-default place use manual installation + add_custom_target(install-3rd_party_logger + COMMAND /bin/bash -c \"cd ${CMAKE_CURRENT_SOURCE_DIR} && + grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]\; then + VAR1=\\$$\( readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 2>/dev/null\)\; + VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\; + VAR2=-1\; + cd ${CMAKE_CURRENT_SOURCE_DIR}\; + git log . 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]; then + VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/apache-log4cxx-0.10.0\)\; + fi\; + if [ \\$$VAR1 != \\$$VAR2 ]\; then + USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; + if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + sudo -k \; + sudo make install\; + else + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make install\; + fi\; + fi\; + else + USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; + if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + sudo -k \; + sudo make install\; + else + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make install\; + fi\; + fi\" + DEPENDS 3rd_party_logger + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + endif() + + set (install-3rd_party_logger_var "install-3rd_party_logger") + endif() +endif() + +if (HMIADAPTER STREQUAL "dbus") + if(NO_REBUILD_3RD_PARTY_DBUS) + message(STATUS "Not rebuilding D-Bus.") + else() + if(FORCE_3RD_PARTY_DBUS) + message(STATUS "Force to rebuild D-Bus.") + + #build d-bus + add_custom_target(3rd_party_dbus + make + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + + #install d-bus + #install either to default place with sudo or non-default plase without sudo. + #to install with sudo to non-default place use manual installation + add_custom_target(install-3rd_party_dbus + COMMAND /bin/bash -c \"USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; + if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then + sudo -k \; + sudo make install\; + else + make install\; + fi\" + DEPENDS 3rd_party_dbus + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + else() + #build d-bus + add_custom_target(3rd_party_dbus + COMMAND /bin/bash -c \"grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]\; then + VAR1=\\$$\(readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 2>/dev/null\)\; + VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\; + VAR2=-1\; + cd ${CMAKE_CURRENT_SOURCE_DIR}\; + git log . 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]; then + VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/dbus-1.7.8\)\; + fi\; + if [ \\$$VAR1 != \\$$VAR2 ]\; then + echo " Need to rebuild D-Bus. " \; + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make\; + else + echo " D-Bus is actual. " \; + fi\; + else + echo " Need to build D-Bus. " \; + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make\; + fi\" + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + + #install d-bus + #install either to default place with sudo or non-default plase without sudo. + #to install with sudo to non-default place use manual installation + add_custom_target(install-3rd_party_dbus + COMMAND /bin/bash -c \"grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]\; then + VAR1=\\$$\(readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 2>/dev/null\)\; + VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\; + VAR2=-1\; + cd ${CMAKE_CURRENT_SOURCE_DIR}\; + git log . 1>/dev/null 2>&1\; + if [ \\$$? == 0 ]; then + VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/dbus-1.7.8\)\; + fi\; + if [ \\$$VAR1 != \\$$VAR2 ]\; then + USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; + if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + sudo -k \; + sudo make install\; + else + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make install\; + fi\; + fi\; + else + USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; + if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + sudo -k \; + sudo make install\; + else + cd ${3RD_PARTY_BINARY_DIRECTORY}\; + make install\; + fi\; + fi\" + DEPENDS 3rd_party_dbus + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + endif() + + set (install-3rd_party_dbus_var "install-3rd_party_dbus") + endif() +endif() + +add_subdirectory(${3RD_PARTY_SOURCE_DIRECTORY} ${3RD_PARTY_BINARY_DIRECTORY} EXCLUDE_FROM_ALL) +add_custom_target(install-3rd_party + DEPENDS ${install-3rd_party_logger_var} + DEPENDS ${install-3rd_party_dbus_var} + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} +) + find_package(OpenSSL REQUIRED) if(ENABLE_LOG) include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) @@ -368,38 +664,34 @@ if(ENABLE_SECURITY) set(SecurityManagerLibrary SecurityManager) set(SecurityManagerIncludeDir ${COMPONENTS_DIR}/security_manager/include) #set(SecurityManagerTestIncludeDir ${CMAKE_SOURCE_DIR}/test/components/security_manager/include) - message(STATUS "Security enabled") endif() if(ENABLE_HMI_PTU_DECRYPTION) + MESSAGE("USE DHMI_PTU_PARSER") add_definitions(-DUSE_HMI_PTU_DECRYPTION) - message(STATUS "HMI PTU decription enabled") endif() set(RTLIB rt) if(CMAKE_SYSTEM_NAME STREQUAL "QNX") - set(RTLIB ) +set(RTLIB ) endif() # Building tests if(BUILD_TESTS) enable_testing() add_definitions(-DBUILD_TESTS) - include_directories( - ${COMPONENTS_DIR}/include/test - ) - message(STATUS "Tests enabled") + # Framework GoogleTest is also integrated together gmock + # and must not be added separately + add_subdirectory(./src/3rd_party-static/gmock-1.7.0) endif() -# --- 3rd party libs -add_subdirectory(./src/3rd_party EXCLUDE_FROM_ALL) - # --- 3rd party libs (static) add_subdirectory(./src/3rd_party-static) # --- Tools add_subdirectory(./tools) + # --- Components add_subdirectory(./src/components) @@ -409,31 +701,35 @@ add_subdirectory(./src/appMain) # --- Plugins add_subdirectory(./src/plugins) -add_dependencies(${PROJECT} Policy) -add_dependencies(${PROJECT} copy_policy_library) + +# Building tests +if(BUILD_TESTS) + # Directory test is deprecated. Use src/components//test + include(Dart) + #add_subdirectory(./test) +endif() # Building documentation # At first creating directory for generated documentation. Unfortunately doxygen # cannot generate it byself -find_package(Doxygen) - if(DOXYGEN_FOUND) +FIND_PACKAGE(Doxygen) + IF(DOXYGEN_FOUND) option(DOXYGEN_ENABLE_DIAGRAMS "Enable graphical diagram generation" ON) - message(STATUS "Doxygen found. Documentation will be generated") if(DOXYGEN_ENABLE_DIAGRAMS) set(DOXYGEN_ENABLE_DIAGRAMS_PARAM "YES") - else() + else(DOXYGEN_ENABLE_DIAGRAMS) set(DOXYGEN_ENABLE_DIAGRAMS_PARAM "NO") endif() configure_file("${PROJECT_SOURCE_DIR}/Doxyfile" "${PROJECT_BINARY_DIR}/Doxyfile") file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doc/doxygen") - add_custom_target(doxygen COMMAND ${DOXYGEN_EXECUTABLE} "${PROJECT_BINARY_DIR}/Doxyfile") - else() - message(STATUS "Doxygen not found. Documentation will not be generated") - message(STATUS "To enable documentation generation please install doxygen and graphviz packages") - message(STATUS "sudo apt-get install doxygen graphviz") - message(STATUS "To enable processing of MscGen comments please install mscgen") - message(STATUS "sudo apt-get install mscgen") -endif() + ADD_CUSTOM_TARGET(doxygen COMMAND ${DOXYGEN_EXECUTABLE} "${PROJECT_BINARY_DIR}/Doxyfile") + ELSE(DOXYGEN_FOUND) + MESSAGE(STATUS "Doxygen not found. Documentation will not be generated") + MESSAGE(STATUS "To enable documentation generation please install doxygen and graphviz packages") + MESSAGE(STATUS "sudo apt-get install doxygen graphviz") + MESSAGE(STATUS "To enable processing of MscGen comments please install mscgen") + MESSAGE(STATUS "sudo apt-get install mscgen") +ENDIF(DOXYGEN_FOUND) -- cgit v1.2.1