Files
mariadb-columnstore-engine/CMakeLists.txt
Leonid Fedorov 449029a827 Deep build refactoring phase 2 (#3564)
* configcpp refactored

* chore(build): massive removals, auto add files to debian install file

* chore(build): configure before autobake

* chore(build): use custom cmake commands for components, mariadb-plugin-columnstore.install generated

* chore(build): install deps as separate step for build-packages

* more deps

* chore(codemanagement, build): build refactoring stage2

* chore(safety): Locked Map for MessageqCpp with a simpler way

 Please enter the commit message for your changes. Lines starting

* chore(codemanagement, ci): better coredumps handling, deps fixed

* Delete build/bootstrap_mcs.py

* Update charset.cpp (add license)
2025-07-17 16:14:10 +04:00

91 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 3.13)
project(Columnstore)
foreach(p CMP0135 CMP0077)
if(POLICY ${p})
cmake_policy(SET ${p} NEW)
endif()
endforeach()
set(PACKAGE columnstore)
set(PACKAGE_NAME columnstore)
set(PACKAGE_TARNAME columnstore)
set(PACKAGE_BUGREPORT support@mariadb.com)
set(PACKAGE_URL "")
set(PACKAGE_STRING columnstore-${PACKAGE_VERSION})
set_property(DIRECTORY PROPERTY EP_BASE ${CMAKE_CURRENT_BINARY_DIR}/external)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
set(CMAKE_CXX_EXTENSIONS FALSE)
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/obj)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
# take a note, that install scripts are and services configurations are located oam/install_scripts/CMakeLists.txt
set(WITH_COLUMNSTORE_LZ4
AUTO
CACHE STRING "Build with lz4. Possible values are 'ON', 'OFF', 'AUTO' and default is 'AUTO'"
)
# order of includes is important
include(check_compiler_flag)
include(ExternalProject)
include(CheckCXXSourceCompiles)
include(packages)
include(boost)
include(thrift)
include(dirs)
include(includes)
include(libs)
include(ColumnstoreLibrary)
include(columnstore_version)
include(configureEngine)
include(compiler_flags)
include(misc)
include(cpack_manage)
add_subdirectory(dbcon/mysql)
if(NOT TARGET columnstore)
return()
endif()
# releasenum is used by external scripts for various tasks. Leave it alone.
columnstore_install_file(${CMAKE_CURRENT_BINARY_DIR}/build/releasenum ${ENGINE_SUPPORTDIR})
columnstore_install_file(${CMAKE_CURRENT_BINARY_DIR}/gitversionEngine ${ENGINE_SUPPORTDIR})
set(COMPONENTS
utils
oam/oamcpp
dbcon/execplan
dbcon/joblist
versioning
oam
writeengine/wrapper
writeengine/client
writeengine/xml
writeengine/redistribute
dbcon/ddlpackage
dbcon/ddlpackageproc
dbcon/dmlpackage
dbcon/dmlpackageproc
ddlproc
dmlproc
oamapps
primitives
tools
writeengine/server
writeengine/bulk
writeengine/splitter
storage-manager
datatypes
tests
)
foreach(component ${COMPONENTS})
add_subdirectory(${component})
endforeach()