aboutsummaryrefslogblamecommitdiffstats
path: root/CMakeLists.txt
blob: 59f560d0e3c811deee54115ea215b78c6b6a230a (plain) (tree)
1
2
3
4
5
6
7
8
9
 
                                                                                     




                                                                                                 
                                    
                                


                             

                                                                                      
 
                                                                            
                                                            
                                                        
                



                                                                             
                          
                            
                          
                           
                          
                        
                                 
                               
                             
                                
                                








                                                
                                                                    
       
 
                                                                                                      
                                      
                                                                                                           
                                       
                                                                                         
                                       
                                                                            
       
# This file was generated by the build system used internally in the Yandex monorepo.
# Only simple modifications are allowed (adding source-files to targets, adding simple properties
# like target_include_directories). These modifications will be ported to original
# ya.make files by maintainers. Any complex modifications which can't be ported back to the
# original buildsystem will not be accepted.


cmake_minimum_required(VERSION 3.15)
project(YDB LANGUAGES C CXX ASM)

set(BUILD_SHARED_LIBS Off)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_EXTENSIONS Off)
set(YDB_MAX_LINK_JOBS 5 CACHE STRING "Maximum parallel link jobs for Ninja generator")
set_property(GLOBAL PROPERTY JOB_POOLS link_jobs=${YDB_MAX_LINK_JOBS})
set(CMAKE_JOB_POOL_LINK link_jobs)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/cmake)
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
list(APPEND CMAKE_CTEST_ARGUMENTS "--output-on-failure")
enable_testing()

# Disable 'empty CUDA_ARCHITECTURES not allowed' warning
# Can't set it in cuda.cmake because of CMake policy subdirectory stack rules
cmake_policy(SET CMP0104 OLD)

include(cmake/antlr.cmake)
include(cmake/archive.cmake)
include(cmake/bison.cmake)
include(cmake/common.cmake)
include(cmake/conan.cmake)
include(cmake/fbs.cmake)
include(cmake/global_flags.cmake)
include(cmake/llvm-tools.cmake)
include(cmake/protobuf.cmake)
include(cmake/shared_libs.cmake)
include(cmake/global_vars.cmake)

if (CMAKE_CROSSCOMPILING)
  include(${CMAKE_BINARY_DIR}/conan_paths.cmake)
else()
  conan_cmake_autodetect(settings)
  conan_cmake_install(
    PATH_OR_REFERENCE ${CMAKE_SOURCE_DIR}
    INSTALL_FOLDER ${CMAKE_BINARY_DIR}
    BUILD missing
    REMOTE conancenter
    SETTINGS ${settings}
      ENV "CONAN_CMAKE_GENERATOR=${CMAKE_GENERATOR}"
      CONF "tools.cmake.cmaketoolchain:generator=${CMAKE_GENERATOR}"
  )
endif()

if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
  include(CMakeLists.linux-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
  include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
  include(CMakeLists.darwin-x86_64.txt)
elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
  include(CMakeLists.windows-x86_64.txt)
endif()