1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/CMakeLists.txt Thu Dec 19 18:40:00 2019 +0100 1.3 @@ -0,0 +1,58 @@ 1.4 +cmake_minimum_required(VERSION 3.15) 1.5 +project(ucx) 1.6 + 1.7 +# Autotools Buildsystem 1.8 +add_custom_command( 1.9 + OUTPUT ${CMAKE_SOURCE_DIR}/configure 1.10 + MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/configure.ac 1.11 + COMMAND ${CMAKE_SOURCE_DIR}/autogen.sh 1.12 + COMMENT "Generating configure script.") 1.13 + 1.14 +add_custom_command( 1.15 + OUTPUT ${CMAKE_SOURCE_DIR}/Makefile 1.16 + DEPENDS ${CMAKE_SOURCE_DIR}/configure 1.17 + COMMAND ${CMAKE_SOURCE_DIR}/configure 1.18 + COMMENT "Configuring project.") 1.19 + 1.20 +add_custom_target(libucx-build 1.21 + DEPENDS ${CMAKE_SOURCE_DIR}/Makefile 1.22 + COMMAND $(MAKE) -f ${CMAKE_SOURCE_DIR}/Makefile 1.23 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) 1.24 + 1.25 +add_custom_target(libucx-clean 1.26 + DEPENDS ${CMAKE_SOURCE_DIR}/Makefile 1.27 + COMMAND $(MAKE) -f ${CMAKE_SOURCE_DIR}/Makefile clean 1.28 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) 1.29 + 1.30 +add_custom_target(libucx-check 1.31 + DEPENDS ${CMAKE_SOURCE_DIR}/Makefile 1.32 + COMMAND $(MAKE) ${CMAKE_SOURCE_DIR}/Makefile check 1.33 + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) 1.34 + 1.35 +# Web Documentation 1.36 +add_subdirectory(docs/src) 1.37 + 1.38 +# API Documentation 1.39 +find_package(Doxygen) 1.40 +option(BUILD_DOCUMENTATION "Create API documentation." ${DOXYGEN_FOUND}) 1.41 + 1.42 +if(BUILD_DOCUMENTATION) 1.43 + if(NOT DOXYGEN_FOUND) 1.44 + message(FATAL_ERROR "Doxygen is needed to build the documentation.") 1.45 + endif() 1.46 + 1.47 + set(DOXY_INPUT ${CMAKE_SOURCE_DIR}/src) 1.48 + set(DOXY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/docs) 1.49 + set(DOXY_PROJECT_LOGO ${CMAKE_SOURCE_DIR}/uaplogo.png) 1.50 + 1.51 + configure_file(${CMAKE_SOURCE_DIR}/cmake_infile.doxygen ${CMAKE_BINARY_DIR}/Doxyfile) 1.52 + 1.53 + add_custom_target(docs-api 1.54 + COMMAND ${DOXYGEN_EXECUTABLE} 1.55 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} 1.56 + COMMENT "Generating API documentation with Doxygen") 1.57 +endif() 1.58 + 1.59 +add_custom_target(docs-all DEPENDS docs-html docs-api) 1.60 + 1.61 +add_custom_target(build-all DEPENDS docs-all libucx-check)