janitor

janitor
git clone https://git.prime8.dev/janitor.git
Log | Files | Refs | README | LICENSE

CMakeLists.txt (3830B)


      1 if("x${CMAKE_SOURCE_DIR}" STREQUAL "x${CMAKE_BINARY_DIR}")
      2   message(FATAL_ERROR "\
      3 In-source build is not a good practice.
      4 Please use:
      5   mkdir build
      6   cd build
      7   cmake ..
      8 to build this project"
      9   )
     10 endif()
     11 
     12 if(CMAKE_TOOLCHAIN_FILE)
     13   set(_BUILD_PYTHON OFF)
     14   set(_BUILD_TESTS OFF)
     15 else()
     16   set(_BUILD_PYTHON ON)
     17   set(_BUILD_TESTS ON)
     18 endif()
     19 
     20 if(POLICY CMP0057)
     21   cmake_policy(SET CMP0057 NEW)
     22 endif()
     23 
     24 cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
     25 
     26 project(kaldi-native-fbank CXX C)
     27 
     28 set(KALDI_NATIVE_FBANK_VERSION "1.20.0")
     29 
     30 # Disable warning about
     31 #
     32 # "The DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is
     33 #  not set.
     34 if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
     35   cmake_policy(SET CMP0135 NEW)
     36 endif()
     37 
     38 if(NOT CMAKE_BUILD_TYPE)
     39   set(CMAKE_BUILD_TYPE Release)
     40 endif()
     41 
     42 message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
     43 
     44 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
     45 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
     46 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
     47 
     48 set(CMAKE_SKIP_BUILD_RPATH FALSE)
     49 set(BUILD_RPATH_USE_ORIGIN TRUE)
     50 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
     51 
     52 if(NOT APPLE)
     53   set(kaldi_native_fbank_rpath_origin "$ORIGIN")
     54 else()
     55   set(kaldi_native_fbank_rpath_origin "@loader_path")
     56 endif()
     57 
     58 set(CMAKE_INSTALL_RPATH ${kaldi_native_fbank_rpath_origin})
     59 set(CMAKE_BUILD_RPATH ${kaldi_native_fbank_rpath_origin})
     60 
     61 set(CMAKE_CXX_STANDARD 14 CACHE STRING "The C++ version to be used.")
     62 
     63 if(NOT DEFINED BUILD_SHARED_LIBS)
     64   set(BUILD_SHARED_LIBS ON)
     65 endif()
     66 
     67 # See
     68 # https://stackoverflow.com/questions/33062728/cmake-link-shared-library-on-windows
     69 if(BUILD_SHARED_LIBS AND MSVC)
     70   set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
     71 endif()
     72 message(STATUS "CMAKE_EXPORT_COMPILE_COMMANDS: ${CMAKE_EXPORT_COMPILE_COMMANDS}")
     73 
     74 message(STATUS "BUILD_SHARED_LIBS: ${BUILD_SHARED_LIBS}")
     75 
     76 option(KALDI_NATIVE_FBANK_BUILD_TESTS "Whether to build tests or not" ${_BUILD_TESTS})
     77 option(KALDI_NATIVE_FBANK_BUILD_PYTHON "Whether to build Python extension" ${_BUILD_PYTHON})
     78 option(KALDI_NATIVE_FBANK_ENABLE_CHECK "Whether to build with log" OFF)
     79 
     80 message(STATUS "KALDI_NATIVE_FBANK_BUILD_TESTS: ${KALDI_NATIVE_FBANK_BUILD_TESTS}")
     81 message(STATUS "KALDI_NATIVE_FBANK_BUILD_PYTHON: ${KALDI_NATIVE_FBANK_BUILD_PYTHON}")
     82 message(STATUS "KALDI_NATIVE_FBANK_ENABLE_CHECK: ${KALDI_NATIVE_FBANK_ENABLE_CHECK}")
     83 
     84 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
     85 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
     86 
     87 message(STATUS "KALDI_NATIVE_FBANK_ENABLE_CHECK: ${KALDI_NATIVE_FBANK_ENABLE_CHECK}")
     88 
     89 if(WIN32)
     90   add_definitions(-DNOMINMAX) # Otherwise, std::max() and std::min() won't work
     91 endif()
     92 
     93 if(KALDI_NATIVE_FBANK_BUILD_PYTHON)
     94   include(pybind11)
     95 endif()
     96 
     97 if(KALDI_NATIVE_FBANK_BUILD_TESTS)
     98   enable_testing()
     99   include(googletest)
    100 endif()
    101 
    102 if(NOT CMAKE_INSTALL_PREFIX)
    103   set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
    104 endif()
    105 
    106 message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
    107 message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
    108 
    109 include(CheckIncludeFileCXX)
    110 check_include_file_cxx(cxxabi.h KNF_HAVE_CXXABI_H)
    111 check_include_file_cxx(execinfo.h KNF_HAVE_EXECINFO_H)
    112 
    113 include_directories(${CMAKE_SOURCE_DIR})
    114 
    115 if(WIN32 AND MSVC)
    116   # disable various warnings for MSVC
    117   # 4244: '=': conversion from 'double' to 'float', possible loss of data
    118   # 4267: 'return': conversion from 'size_t' to 'int32_t', possible loss of data
    119   # 4624: destructor was implicitly defined as deleted because a base class destructor is inaccessible or deleted
    120   set(disabled_warnings
    121       /wd4244
    122       /wd4267
    123       /wd4624
    124   )
    125   message(STATUS "Disabled warnings: ${disabled_warnings}")
    126   foreach(w IN LISTS disabled_warnings)
    127     string(APPEND CMAKE_CXX_FLAGS " ${w} ")
    128   endforeach()
    129 endif()
    130 
    131 add_subdirectory(kaldi-native-fbank)