cmake_minimum_required(VERSION 3.10)

project(solarus-editor VERSION 2.0.3)
set(COMPONENT_NAME "${PROJECT_NAME}")

include(cmake/AddOptions.cmake)
include(cmake/AddConfigurationVars.cmake)
include(cmake/AddMetadata.cmake)
include(cmake/AddCompilationFlags.cmake)
include(cmake/AddDependencies.cmake)
include(cmake/AddIncludeDirectories.cmake)
include(cmake/AddGeneratedHeaders.cmake)
include(cmake/AddSourceFiles.cmake)
include(cmake/AddQtFiles.cmake)
include(cmake/AddEditorExecutable.cmake)
include(cmake/AddInstallTargets.cmake)
include(cmake/AddUninstallTargets.cmake)

# Platform specific configuration for build and deployment.
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  include(cmake/macOS/macOSBuild.cmake)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  include(cmake/win32/Win32Build.cmake)
elseif(UNIX AND NOT APPLE)
  include(cmake/linux/LinuxBuild.cmake)
endif()

# Configure deployement for each platform.
set(SOLARUSEDITOR_DEPLOY_ENABLED ON CACHE BOOL "Enable deployment using Qt deploy tool")
if(SOLARUSEDITOR_DEPLOY_ENABLED)
  if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
    include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/macOS/macOSDeploy.cmake)
  elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND NOT MINGW)
    include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows/windowsDeploy.cmake)
  endif()
endif()

# Configure packaging for each platform.
set(SOLARUSEDITOR_CPACK_ENABLED ON CACHE BOOL "Enable packaging with CPack")
if(SOLARUSEDITOR_CPACK_ENABLED)
  include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/AddPackage.cmake)
  if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
    include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/macOS/macOSPackage.cmake)
  # elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
  #   include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/windows/windowsPackage.cmake)
  endif()
  message(STATUS "CPack package name: ${CPACK_PACKAGE_FILE_NAME}")
  include(CPack)
endif()
