# SPDX-FileCopyrightText: Matteo Settenvini # SPDX-License-Identifier: EUPL-1.2 cmake_minimum_required(VERSION 3.30) list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") include(cmake/helpers) get_project_version(project_version ${CMAKE_CURRENT_SOURCE_DIR}) project(linux-parental-controls VERSION ${project_version}) # ------------------------------- # Options option(BUILD_DOCUMENTATION "Whether to build and install the documentation" ON) # ------------------------------- # Import crates include(FetchContent) FetchContent_Declare(Corrosion GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git GIT_TAG v0.5.1) FetchContent_MakeAvailable(Corrosion) ensure_rust_utils( cargo-nextest cargo-llvm-cov) setup_crates(${CMAKE_CURRENT_SOURCE_DIR}) # ------------------------------- # Install Rust libraries or binaries set(libname "libnss_parental_ctrls.so") install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnss_parental_ctrls.so TYPE LIB RENAME "${libname}.2") # NSSv3 requires the .2 soname # ------------------------------- # Additional non-rust files to build and/or install if(BUILD_DOCUMENTATION) add_subdirectory(doc) endif() # ------ Export targets --------- # TODO: Still not needed as of now. # # include(CMakePackageConfigHelpers) # write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-version.cmake # VERSION ${PROJECT_VERSION} # COMPATIBILITY AnyNewerVersion) # configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake.in # ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake # INSTALL_DESTINATION lib/cmake/${PROJECT_NAME} # NO_SET_AND_CHECK_MACRO # NO_CHECK_REQUIRED_COMPONENTS_MACRO) # include(GNUInstallDirs) # install( # FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.cmake # ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake # DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) # ------------------------------- include(CTest) print_summary()