zoukankan      html  css  js  c++  java
  • git submodule 与cmake(以Gflags glog为例)

    • 为当前项目添加submodule  (以Gflags glog为例)
    git submodule add http://172.16.10.13/source_dir/gflags submodules/gflags
    git submodule add http://172.16.10.13/source_dir/glog submodules/glog
    • 首次clone 项目后,同步submodule
    git submodule update --init --recursive
    • 项目cmake配置submodule
      •   源项目cmake
    cmake_minimum_required (VERSION 2.8)
    
    if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
        message(FATAL_ERROR "
        FATAL: In-source builds are not allowed.
               You should create a separate directory for build files.
               ")
    endif()
    
    project (test_pro)
    aux_source_directory(src DIR_SRCS)
    add_executable(test_pro ${DIR_SRCS})
    #target_link_libraries(test_pro)
      •   添加submodule后cmake
    cmake_minimum_required (VERSION 2.8)
    
    if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
        message(FATAL_ERROR "
        FATAL: In-source builds are not allowed.
               You should create a separate directory for build files.
               ")
    endif()
    
    project (test_pro)
    aux_source_directory(src DIR_SRCS)
    
    ### LOCALCMAKE_TOOLCHAIN 编译平台选择 例如:cmake -DLOCALCMAKE_TOOLCHAIN:STRING=1804 .. ### 设置submodule编译输出的位置
    set(CMAKE_BUILD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bld_${LOCALCMAKE_TOOLCHAIN}) #Glog Gflags 静态库位置 set(GLOG_LIBRARY ${CMAKE_BUILD_DIR}/glog/lib/libglog.a ) set(GFLAGS_LIBRARY ${CMAKE_BUILD_DIR}/gflags/lib/libgflags.a ) #Glog 自动化编译 add_dependencies(test_pro Glog) add_custom_command( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/submodules/glog/build.static OUTPUT ${CMAKE_BUILD_DIR}/glog/include OUTPUT ${CMAKE_BUILD_DIR}/glog/lib/libglog.a COMMAND rm CMake* cmake* Makefile -rf COMMAND cmake -DCMAKE_INSTALL_PREFIX=${CMAKE_BUILD_DIR}/glog -DCMAKE_PREFIX_PATH=${CMAKE_BUILD_DIR}/gflags/ .. COMMAND make -j$(nproc) COMMAND make install) #Glog make install 安装输出文件 add_custom_target(Glog DEPENDS ${CMAKE_BUILD_DIR}/gflags/lib/libgflags.a DEPENDS ${CMAKE_BUILD_DIR}/glog/include DEPENDS ${CMAKE_BUILD_DIR}/glog/lib/libglog.a ) #Gflags 自动化编译 add_dependencies(test_pro Gflags) add_custom_command( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/submodules/gflags/build.static OUTPUT ${CMAKE_BUILD_DIR}/gflags/include OUTPUT ${CMAKE_BUILD_DIR}/gflags/lib/libgflags.a COMMAND rm CMake* cmake* Makefile -rf COMMAND cmake -DCMAKE_INSTALL_PREFIX=${CMAKE_BUILD_DIR}/gflags -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} .. COMMAND make -j$(nproc) COMMAND make install) #Gflags make install 安装输出文件 add_custom_target(Gflags DEPENDS ${CMAKE_BUILD_DIR}/gflags/include DEPENDS ${CMAKE_BUILD_DIR}/gflags/lib/libgflags.a ) add_executable(test_pro ${DIR_SRCS}) #项目对Glog Gflags的依赖 target_link_libraries(test_pro ${GLOG_LIBRARY} ${GFLAGS_LIBRARY})
  • 相关阅读:
    关于MyEclipse项目的名字的修改对项目导入导出的影响
    关于SQL语句的一些注意事项
    关于Struts2的jsp页面的注释
    关于VS2013常用到的快捷键
    关于Cocos2d-x中定时器的使用总结
    关于Cocos2d-x中打包图集和使用方法
    zend studio 10.6.2 设置默认编码为UTF-8
    zend studio 10.6.2 字体大小 设置
    zend Studio10.6.2汉化
    JQ Ajax 上传文件
  • 原文地址:https://www.cnblogs.com/rayfloyd/p/14329917.html
Copyright © 2011-2022 走看看