cmake_minimum_required(VERSION 3.14)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

project(MFIX-Parser
   DESCRIPTION  "A parser for MFIX-Exa input files"
   HOMEPAGE_URL "https://mfix.netl.doe.gov/gitlab/exa/mfix-parser"
   LANGUAGES    CXX
   )

set( CMAKE_EXPORT_COMPILE_COMMANDS ON )
set(USE_CCACHE "")
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
  set( CMAKE_CXX_COMPILER_LAUNCHER ccache )
endif()

add_subdirectory(src)
add_subdirectory(tests)

find_program(CLANG_FMT NAMES clang-format-9 clang-format-8 clang-format-7 clang-format)

if(CLANG_FMT)
  get_target_property(_psrcs unit_tests SOURCES)
  add_custom_target(fmt_test
    COMMAND ${CLANG_FMT} -i ${_psrcs}
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests
    )
  file(GLOB _includes ${PROJECT_SOURCE_DIR}/src/*.hpp)

  add_custom_target(fmt)
  add_dependencies(fmt fmt_test)
endif()

set(EXENAME "mfix-parser")
add_executable(${EXENAME} src/main.cpp)
target_link_libraries(${EXENAME} parser)
