project(GarminDev)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/qlandkartegt)

cmake_minimum_required(VERSION 2.6)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)

#this one is for the API version check
set(VER_MAJOR     01)
set(VER_MINOR     18)

#this one is for the release version
set(PACKAGE_VER_MAJOR     0)
set(PACKAGE_VER_MINOR     3)
set(PACKAGE_VER_PATCH     5)


add_definitions(-DVER_MAJOR=${VER_MAJOR} -DVER_MINOR=${VER_MINOR})

# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
set(CMAKE_MODULE_PATH
  ${CMAKE_SOURCE_DIR}/cmake/Modules
)

# add definitions
include(DefineCMakeDefaults)
include(DefineCompilerFlags)
include(DefineInstallationPaths)
include(DefineOptions.cmake)
include(CPackConfig.cmake)

# disallow in-source build
# include(MacroEnsureOutOfSourceBuild)
# macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")

# config.h generation
include(ConfigureChecks.cmake)
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
include_directories(
  ${CMAKE_BINARY_DIR}
  ${CMAKE_CURRENT_BINARY_DIR}
)

if(APPLE)
  set(SHARED_LIB_EXT ".dylib")
  set(QLANDKARTEGT_BUILD_DIR "../build_QLandkarteGT"
      CACHE PATH "location of the QLandkarteGT build folder")
  add_custom_target(mac-deploy
    COMMAND
      rm -rf "${QLANDKARTEGT_BUILD_DIR}/bin/QLandkarte\ GT.app/Contents/Resources/Drivers" &&
      mkdir -p "${QLANDKARTEGT_BUILD_DIR}/bin/QLandkarte\ GT.app/Contents/Resources/Drivers" &&
      tar -cpf - --exclude '*.a' -C ${LIBRARY_OUTPUT_PATH} . |
      tar -xpf - -C "${QLANDKARTEGT_BUILD_DIR}/bin/QLandkarte\ GT.app/Contents/Resources/Drivers"
  )
elseif(UNIX)
  set(SHARED_LIB_EXT ".so")
endif (APPLE)

find_package(USB REQUIRED)

add_subdirectory(./src)
add_subdirectory(./src/GPSMap60CSx)
add_subdirectory(./src/GPSMap76)
add_subdirectory(./src/EtrexLegendC)
add_subdirectory(./src/EtrexLegend)
add_subdirectory(./src/EtrexH)
add_subdirectory(./src/whatGarmin)
add_subdirectory(./src/ForeRunner)
add_subdirectory(./src/Oregon)

install(
    DIRECTORY
        ${LIBRARY_OUTPUT_PATH}
    DESTINATION
        ${LIB_INSTALL_DIR}
)
