cmake_minimum_required(VERSION 3.25)

project(standalone-xsltproc)

function (superbuild_find_projects var)
  set(projects
    libxml2
    libxslt)

  set("${var}"
    ${projects}
    PARENT_SCOPE)
endfunction ()

function (superbuild_add_packaging)
  if (WIN32)
    set(generators
      ZIP)
  else ()
    set(generators
      TGZ)
  endif ()
  list(GET generators 0 default_generator)

  set(superbuild_no_install_macros 1)
  list(APPEND superbuild_export_variables
    libxslt_version
    superbuild_no_install_macros)

  set(default_target)
  foreach (generator IN LISTS generators)
    superbuild_add_extra_package_test(xsltproc "${generator}")
    if (NOT default_target)
      set(default_target "xsltproc/${generator}")
    endif ()
  endforeach ()

  if (default_target)
    superbuild_enable_install_target("${default_target}")
  endif ()
endfunction ()

# Force-enable `libxslt`.
set(ENABLE_libxslt ON)
# Use static builds.
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

set(superbuild_install_location "${CMAKE_BINARY_DIR}/install")

list(APPEND superbuild_project_roots
  "${CMAKE_CURRENT_LIST_DIR}/projects")

include(CTest)
enable_testing()

get_filename_component(sb_dir "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY)
add_subdirectory("${sb_dir}" "${CMAKE_CURRENT_BINARY_DIR}/superbuild")
