cmake_minimum_required(VERSION 3.16)

project(qdjango-vendored LANGUAGES CXX)

# Support Qt5 or Qt6
if (NOT DEFINED QT_DEFAULT_MAJOR_VERSION)
  if (TARGET Qt6::Core)
    set(QT_DEFAULT_MAJOR_VERSION 6)
  else()
    set(QT_DEFAULT_MAJOR_VERSION 5)
  endif()
endif()

find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED COMPONENTS Core Sql)

add_library(qdjango-db STATIC
  src/db/QDjango.cpp
  src/db/QDjangoMetaModel.cpp
  src/db/QDjangoModel.cpp
  src/db/QDjangoQuerySet.cpp
  src/db/QDjangoWhere.cpp
)

target_include_directories(qdjango-db
  PUBLIC
    src/db
)

target_link_libraries(qdjango-db
  PUBLIC Qt${QT_DEFAULT_MAJOR_VERSION}::Core
         Qt${QT_DEFAULT_MAJOR_VERSION}::Sql
)

target_compile_features(qdjango-db PUBLIC cxx_std_17)

set_target_properties(qdjango-db PROPERTIES
  POSITION_INDEPENDENT_CODE ON
)

add_library(QDjango::db ALIAS qdjango-db)
