env.inc 3.2 KB
Newer Older
1
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
S
[TD-58]  
slguan 已提交
2 3
PROJECT(TDengine)

S
slguan 已提交
4
SET(CMAKE_C_STANDARD 11)
5 6 7 8 9 10

IF (TD_BUILD_VERBOSE)
  SET(CMAKE_VERBOSE_MAKEFILE ON)
ELSE ()
  SET(CMAKE_VERBOSE_MAKEFILE OFF)
ENDIF ()
S
slguan 已提交
11 12 13 14 15 16 17 18 19 20 21

#set output directory
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/lib)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/bin)
SET(TD_TESTS_OUTPUT_DIR ${PROJECT_BINARY_DIR}/test)

MESSAGE(STATUS "Project source directory: " ${PROJECT_SOURCE_DIR})
MESSAGE(STATUS "Project binary files output path: " ${PROJECT_BINARY_DIR})
MESSAGE(STATUS "Project executable files output path: " ${EXECUTABLE_OUTPUT_PATH})
MESSAGE(STATUS "Project library files output path: " ${LIBRARY_OUTPUT_PATH})

sangshuduo's avatar
sangshuduo 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
find_package(Git QUIET)
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
# Update submodules as needed
    option(GIT_SUBMODULE "Check submodules during build" ON)
    if(GIT_SUBMODULE)
        message(STATUS "Submodule update")
        execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
                        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
                        RESULT_VARIABLE GIT_SUBMOD_RESULT)
        if(NOT GIT_SUBMOD_RESULT EQUAL "0")
            message(WARNING "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
        endif()
    endif()
endif()

if(NOT EXISTS "${PROJECT_SOURCE_DIR}/deps/jemalloc/Makefile.in")
    message(WARNING "The submodules were not downloaded! GIT_SUBMODULE was turned off or failed. Please update submodules manually if you need build them.")
endif()

41 42 43 44 45 46 47
IF (TD_BUILD_JDBC)
    FIND_PROGRAM(TD_MVN_INSTALLED mvn)
    IF (TD_MVN_INSTALLED)
        MESSAGE(STATUS "MVN is installed and JDBC will be compiled")
    ELSE ()
        MESSAGE(STATUS "MVN is not installed and JDBC is not compiled")
    ENDIF ()
S
[TD-58]  
slguan 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60
ENDIF ()

#
# If need to set debug options
#   1.Generate debug version:
#     mkdir debug; cd debug;
#     cmake -DCMAKE_BUILD_TYPE=Debug ..
#   2.Generate release version:
#     mkdir release; cd release;
#     cmake -DCMAKE_BUILD_TYPE=Release ..
#

# Set compiler options
61 62 63 64 65 66
IF (TD_LINUX)
  SET(COMMON_C_FLAGS "${COMMON_FLAGS} -std=gnu99")
ELSE ()
  SET(COMMON_C_FLAGS "${COMMON_FLAGS} ")
ENDIF ()

67 68
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMMON_C_FLAGS} ${DEBUG_FLAGS}")
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${COMMON_C_FLAGS} ${RELEASE_FLAGS}")
S
[TD-58]  
slguan 已提交
69 70

# Set c++ compiler options
71 72 73 74 75 76
IF (TD_WINDOWS)
  SET(COMMON_CXX_FLAGS "${COMMON_FLAGS} -std=c++11")
ELSE ()
  SET(COMMON_CXX_FLAGS "${COMMON_FLAGS} -std=c++11 -Wno-unused-function")
ENDIF ()

77 78
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMMON_CXX_FLAGS} ${DEBUG_FLAGS}")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${COMMON_CXX_FLAGS} ${RELEASE_FLAGS}")
S
[TD-58]  
slguan 已提交
79 80

IF (${CMAKE_BUILD_TYPE} MATCHES "Debug")
S
Shengliang Guan 已提交
81
  SET(CMAKE_BUILD_TYPE "Debug")
S
[TD-58]  
slguan 已提交
82 83
  MESSAGE(STATUS "Build Debug Version")
ELSEIF (${CMAKE_BUILD_TYPE} MATCHES "Release")
S
Shengliang Guan 已提交
84
  SET(CMAKE_BUILD_TYPE "Release")
S
[TD-58]  
slguan 已提交
85 86
  MESSAGE(STATUS "Build Release Version")
ELSE ()
S
Shengliang Guan 已提交
87
  IF (TD_WINDOWS)
S
[TD-58]  
slguan 已提交
88 89 90 91 92 93
    SET(CMAKE_BUILD_TYPE "Release")
    MESSAGE(STATUS "Build Release Version in Windows as default")
  ELSE ()
    SET(CMAKE_BUILD_TYPE "Debug")
    MESSAGE(STATUS "Build Debug Version as default")
  ENDIF()
94
ENDIF ()