+# Prerequisites detection:
+# ========================
+FIND_PACKAGE(LibbatchPThread REQUIRED)
+
+IF (LIBBATCH_PYTHON_WRAPPING)
+ FIND_PACKAGE(LibbatchPython REQUIRED)
+ FIND_PACKAGE(LibbatchSWIG REQUIRED)
+
+ SET(PYTHON_VERSION "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
+ SET(LIBBATCH_PYTHONPATH lib/python${PYTHON_VERSION}/site-packages)
+ENDIF()
+
+# Configuration summary
+# =====================
+LIBBATCH_SUMMARY()
+
+# Configure
+# =========
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libbatch_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/libbatch_config.h)
+ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(misc)
+
+# Export logic
+# ============
+INCLUDE(CMakePackageConfigHelpers)
+
+# Add all targets to the build-tree export set
+EXPORT(TARGETS batch
+ FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake)
+
+# Create the configuration files:
+# - in the build tree:
+
+# Ensure the variables are always defined for the configure:
+SET(LIBBATCH_PYTHONPATH "${LIBBATCH_PYTHONPATH}")
+SET(PYTHON_ROOT_DIR "${PYTHON_ROOT_DIR}")
+SET(SWIG_ROOT_DIR "${SWIG_ROOT_DIR}")
+
+SET(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}/include")
+CONFIGURE_PACKAGE_CONFIG_FILE(misc/${PROJECT_NAME}Config.cmake.in
+ ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+ INSTALL_DESTINATION "${INSTALL_CMAKE_CONFIG_DIR}"
+ PATH_VARS CONF_INCLUDE_DIRS INSTALL_CMAKE_CONFIG_DIR CMAKE_INSTALL_PREFIX LIBBATCH_PYTHONPATH
+ PYTHON_ROOT_DIR SWIG_ROOT_DIR PTHREAD_ROOT_DIR)
+
+# - in the install tree:
+# Get the relative path of the include directory so
+# we can register it in the generated configuration files:
+SET(CONF_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/${INSTALL_INCLUDE_DIR}")
+CONFIGURE_PACKAGE_CONFIG_FILE(misc/${PROJECT_NAME}Config.cmake.in
+ ${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake
+ INSTALL_DESTINATION "${INSTALL_CMAKE_CONFIG_DIR}"
+ PATH_VARS CONF_INCLUDE_DIRS INSTALL_CMAKE_CONFIG_DIR CMAKE_INSTALL_PREFIX LIBBATCH_PYTHONPATH
+ PYTHON_ROOT_DIR SWIG_ROOT_DIR PTHREAD_ROOT_DIR)
+
+WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+ VERSION ${${PROJECT_NAME_UC}_VERSION}
+ COMPATIBILITY AnyNewerVersion)
+
+# Install the CMake configuration files:
+INSTALL(FILES
+ "${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake"
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+ DESTINATION "${INSTALL_CMAKE_CONFIG_DIR}")
+
+# Install the export set for use with the install-tree
+INSTALL(EXPORT LibBatchTargets DESTINATION "${INSTALL_CMAKE_CONFIG_DIR}")
+
+# Packaging logic
+# ===============