| cmake_minimum_required(VERSION 3.18) | |
| project(DockingAtHOME VERSION 1.0.0 LANGUAGES CXX CUDA) | |
| set(CMAKE_CXX_STANDARD 17) | |
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | |
| set(CMAKE_CUDA_STANDARD 14) | |
| # Options | |
| option(BUILD_WITH_CUDA "Build with CUDA support" ON) | |
| option(BUILD_BOINC_CLIENT "Build BOINC client integration" ON) | |
| option(BUILD_TESTS "Build test suite" ON) | |
| option(BUILD_EXAMPLES "Build example programs" ON) | |
| # Find required packages | |
| find_package(CUDA REQUIRED) | |
| find_package(Threads REQUIRED) | |
| find_package(OpenSSL REQUIRED) | |
| # Include directories | |
| include_directories( | |
| ${CMAKE_SOURCE_DIR}/include | |
| ${CMAKE_SOURCE_DIR}/src | |
| ${CMAKE_SOURCE_DIR}/external/autodock/src | |
| ${CMAKE_SOURCE_DIR}/external/cudpp/include | |
| ${CMAKE_SOURCE_DIR}/external/boinc/lib | |
| ${CUDA_INCLUDE_DIRS} | |
| ) | |
| # Subdirectories | |
| add_subdirectory(external) | |
| add_subdirectory(src) | |
| add_subdirectory(python) | |
| if(BUILD_TESTS) | |
| enable_testing() | |
| add_subdirectory(tests) | |
| endif() | |
| if(BUILD_EXAMPLES) | |
| add_subdirectory(examples) | |
| endif() | |
| # Installation | |
| install(DIRECTORY include/ DESTINATION include/docking-at-home) | |
| install(DIRECTORY config/ DESTINATION etc/docking-at-home) | |
| install(FILES README.md LICENSE DESTINATION share/doc/docking-at-home) | |
| # Package configuration | |
| set(CPACK_PACKAGE_NAME "DockingAtHOME") | |
| set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) | |
| set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Distributed Molecular Docking Platform") | |
| set(CPACK_PACKAGE_VENDOR "OpenPeer AI, Riemann Computing Inc., Bleunomics") | |
| include(CPack) | |