# Generated by ritual.
# See the template at "ritual/templates/cpp_checker/CMakeLists.txt".

cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
project (cpp_checker)

# uncomment to enable verbose output
# SET(CMAKE_VERBOSE_MAKEFILE ON)

if(RITUAL_QT)
    set(CMAKE_AUTOMOC ON)
    find_package(Qt5Core CONFIG REQUIRED)
endif()

include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
if(RITUAL_INCLUDE_PATH)
    message(STATUS "RITUAL_INCLUDE_PATH=${RITUAL_INCLUDE_PATH}")
    include_directories(${RITUAL_INCLUDE_PATH})
endif()
if(RITUAL_LIBRARY_PATH)
    message(STATUS "RITUAL_LIBRARY_PATH=${RITUAL_LIBRARY_PATH}")
    link_directories(${RITUAL_LIBRARY_PATH})
endif()

file(GLOB sources *.cpp)
file(GLOB headers *.h)

add_executable(cpp_checker ${sources})

if(RITUAL_LINKED_LIBS)
    message(STATUS "RITUAL_LINKED_LIBS=${RITUAL_LINKED_LIBS}")
    target_link_libraries(cpp_checker ${RITUAL_LINKED_LIBS})
endif()

macro(add_osx_framework fwname target)
    find_library(FRAMEWORK_${fwname}
            NAMES ${fwname}
            PATHS ${RITUAL_FRAMEWORK_PATH}
            NO_DEFAULT_PATH)
    if( ${FRAMEWORK_${fwname} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
        message(FATAL_ERROR "Framework not found: ${fwname}")
    else()
        target_link_libraries(${target} "${FRAMEWORK_${fwname}/${fwname}")
        message(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}")
    endif()
endmacro(add_osx_framework)

if(RITUAL_FRAMEWORK_PATH)
    message(STATUS "RITUAL_FRAMEWORK_PATH=${RITUAL_FRAMEWORK_PATH}")
endif()

if(RITUAL_LINKED_FRAMEWORKS)
    message(STATUS "RITUAL_LINKED_FRAMEWORKS=${RITUAL_LINKED_FRAMEWORKS}")
    foreach(framework ${RITUAL_LINKED_FRAMEWORKS})
        ADD_OSX_FRAMEWORK(${framework} cpp_checker)
    endforeach()
endif()

if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
    set(CMAKE_CXX_FLAGS
        "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-deprecated-declarations -Werror=return-type")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # GCC
    set(CMAKE_CXX_FLAGS
        "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-deprecated-declarations -Werror=return-type")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
    # don't warn about deprecated items
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4996")
endif()

if(RITUAL_COMPILER_FLAGS)
    message(STATUS "RITUAL_COMPILER_FLAGS=${RITUAL_COMPILER_FLAGS}")
    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RITUAL_COMPILER_FLAGS}")
endif()

if(APPLE)
    add_custom_command(
            TARGET cpp_checker
            POST_BUILD
            COMMAND DYLD_LIBRARY_PATH=$ENV{DYLD_LIBRARY_PATH} $<TARGET_FILE:cpp_checker>)
else()
    add_custom_command(
            TARGET cpp_checker
            POST_BUILD
            COMMAND cpp_checker)
endif()


