“CMake”这个名字是“cross platform make”
cmake_百度百科 https://baike.baidu.com/item/cmake/7138032?fr=aladdin
功能
历史
组态档
message("== Configuring legacy connector build using cmake generator: ${CMAKE_GENERATOR}") if(NOT EXISTS "${PROJECT_SOURCE_DIR}/jdbc/CMakeLists.txt")
message(FATAL_ERROR
"Could not find JDBC API sources at ${PROJECT_SOURCE_DIR}/jdbc."
" Have you updated git sub-modules?"
)
endif() set(JDBC_DIR "${PROJECT_BINARY_DIR}/jdbc") if(FORCE_REBUILD AND EXISTS "${JDBC_DIR}/CMakeCache.txt")
file(REMOVE ${JDBC_DIR}/CMakeCache.txt)
endif()
file(MAKE_DIRECTORY "${JDBC_DIR}") #############################################################################
#
# Configure legacy connector build environment in ${JDBC_DIR}
# if(BUILD_STATIC)
list(APPEND jdbc_cmake_opts -DENABLE_BUILD_STATIC=ON)
else()
list(APPEND jdbc_cmake_opts -DENABLE_BUILD_DYNAMIC=ON)
endif() if(MAINTAINER_MODE)
list(APPEND jdbc_cmake_opts -DENABLE_BUILD_STATIC=ON)
endif() if(MYSQL_DIR)
list(APPEND jdbc_cmake_opts -DMYSQL_DIR=${MYSQL_DIR})
endif() if(MYSQL_CONFIG_EXECUTABLE)
list(APPEND jdbc_cmake_opts -DMYSQL_CONFIG_EXECUTABLE=${MYSQL_CONFIG_EXECUTABLE})
endif() list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=ON) if(CMAKE_BUILD_TYPE)
if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]")
list(APPEND jdbc_cmake_opts -DCMAKE_BUILD_TYPE=Release)
else()
list(APPEND jdbc_cmake_opts -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
endif()
endif() if(DEFINED STATIC_MSVCRT)
list(APPEND jdbc_cmake_opts -DSTATIC_MSVCRT=${STATIC_MSVCRT})
endif() if(VS)
list(APPEND jdbc_cmake_opts -DVS=${VS})
endif() #
# Find Boost which is required by legacy connector
# include(boost)
list(APPEND jdbc_cmake_opts -DBOOST_ROOT=${BOOST_ROOT}) #
# Generate version info for legacy connector
# configure_file(
"${PROJECT_SOURCE_DIR}/jdbc/VersionInfo.cmake.in"
"${JDBC_DIR}/VersionInfo.cmake"
@ONLY
) # Dirty trick to speed up cmake set up time. file(
COPY "${CMAKE_BINARY_DIR}/CMakeFiles/${CMAKE_VERSION}"
DESTINATION "${JDBC_DIR}/CMakeFiles"
) if(1)
execute_process(
COMMAND ${CMAKE_COMMAND} -Wno-dev
-G "${CMAKE_GENERATOR}"
${jdbc_cmake_opts}
-DCMAKE_INSTALL_PREFIX=${JDBC_DIR}/install
-DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
${PROJECT_SOURCE_DIR}/jdbc
WORKING_DIRECTORY ${JDBC_DIR}
RESULT_VARIABLE jdbc_config
)
endif() if(jdbc_config)
message(FATAL_ERROR "Could not configure legacy connector build: ${jdbc_config}")
endif() #############################################################################
#
# Target build_jdbc which triggers build and installation of the legacy
# connector.
# #
# jdbc.buildstamp
# set(JDBC_BUILD_STAMP "${PROJECT_BINARY_DIR}/jdbc.buildstamp")
file(REMOVE "${JDBC_BUILD_STAMP}")
#message("JDBC_BUILD_STAMP: ${JDBC_BUILD_STAMP}") set(CONFIG_EXPR
$<$<CONFIG:Static>:Release>$<$<NOT:$<CONFIG:Static>>:$<CONFIGURATION>>
) add_custom_command(OUTPUT ${JDBC_BUILD_STAMP} COMMAND ${CMAKE_COMMAND} -E remove_directory install
COMMAND ${CMAKE_COMMAND}
--build . --target install --config ${CONFIG_EXPR} --clean-first # Move installed headers from include/ to include/jdbc and rename lib/
# to lib64/ for 64-bit platform COMMAND ${CMAKE_COMMAND} -E remove_directory install/jdbc
COMMAND ${CMAKE_COMMAND} -E rename install/include install/jdbc
COMMAND ${CMAKE_COMMAND} -E make_directory install/include
COMMAND ${CMAKE_COMMAND} -E copy_directory install/jdbc install/include/jdbc
COMMAND ${CMAKE_COMMAND} -E remove_directory install/jdbc COMMAND ${CMAKE_COMMAND} -E touch ${JDBC_BUILD_STAMP} WORKING_DIRECTORY ${JDBC_DIR}
COMMENT "Building legacy connector library using configuration: $(Configuration)"
) # Collect sources of legacy connector and specify them in the build
# target. unset(jdbc_sources)
foreach(dir driver cppconn thread) file(
GLOB_RECURSE sources
#RELATIVE "${PROJECT_SOURCE_DIR}/jdbc/${dir}"
"${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.cpp"
"${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.h"
"${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.cmake"
"${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.cm"
"${PROJECT_SOURCE_DIR}/jdbc/${dir}/CMakeLists.txt"
) # TODO: Split into Headers/Sources/Other sub-groups source_group(${dir} FILES ${sources}) list(APPEND jdbc_sources ${sources}) endforeach() add_custom_target(build_jdbc ALL
DEPENDS ${JDBC_BUILD_STAMP}
SOURCES ${jdbc_sources}
) #############################################################################
#
# Import legacy connector library so that it can be used by other targets.
# set(JDBC_INCLUDES ${Boost_INCLUDE_DIRS} "${JDBC_DIR}/install/include")
#message("legacy connector includes: ${JDBC_INCLUDES}") #
# Import library targets exported from the legacy connector project.
# include("${JDBC_DIR}/exports.cmake") if(BUILD_STATIC)
set(JDBC_LIB mysqlcppconn-static)
else()
set(JDBC_LIB mysqlcppconn)
endif() add_dependencies(${JDBC_LIB} build_jdbc) set(JDBC_LIBS ${JDBC_LIB} CACHE INTERNAL "legacy connector library") #############################################################################
#
# Installation specs for the legacy connector
# get_target_property(configurations ${JDBC_LIB} IMPORTED_CONFIGURATIONS) foreach(config ${configurations}) get_target_property(location ${JDBC_LIB} IMPORTED_LOCATION_${config})
message("jdbc installing: ${location}") if(config STREQUAL DEBUG)
set(loc "${INSTALL_LIB_DIR}/debug")
set(loc_static "${INSTALL_LIB_DIR_STATIC}/debug")
else()
set(loc "${INSTALL_LIB_DIR}")
set(loc_static "${INSTALL_LIB_DIR_STATIC}")
endif() if(BUILD_STATIC) install(
FILES ${location}
CONFIGURATIONS ${config}
DESTINATION ${loc_static}
COMPONENT JDBCDev
) else() if(WIN32) install(FILES ${location} CONFIGURATIONS ${config} DESTINATION ${loc} COMPONENT JDBCDll) # install import library for the DLL get_target_property(imp_location ${JDBC_LIB} IMPORTED_IMPLIB_${config}) install(
FILES ${imp_location}
CONFIGURATIONS ${config}
DESTINATION ${loc_static}
COMPONENT JDBCDev
) else() # We need to install soname and linkname links together with the shared
# library. get_filename_component(name "${location}" NAME)
get_filename_component(loc_path "${location}" PATH)
get_target_property(soname ${JDBC_LIB} IMPORTED_SONAME_${config})
set(linkname "${CMAKE_SHARED_LIBRARY_PREFIX}mysqlcppconn${CMAKE_SHARED_LIBRARY_SUFFIX}") #
# Warning: Using undocumented file(INSTALL ...) signature which creates
# required symlinks. This command is used in install scripts generated
# by cmake.
# install(CODE
"file(INSTALL
DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${loc}\"
TYPE SHARED_LIBRARY
FILES
\"${location}\"
\"${loc_path}/${soname}\"
\"${loc_path}/${linkname}\"
)"
) endif() endif() endforeach() install(
DIRECTORY ${JDBC_DIR}/install/include/jdbc
DESTINATION ${INSTALL_INCLUDE_DIR}
COMPONENT JDBCDev
) #
# In maintainer mode add specifications for installing the static library
# which is always built in this mode.
# if(MAINTAINER_MODE) add_dependencies(mysqlcppconn-static build_jdbc)
get_target_property(location mysqlcppconn-static IMPORTED_LOCATION_RELEASE)
message("jdbc installing: ${location} (MAINTAINER_MODE)") install(
FILES ${location}
CONFIGURATIONS Static
DESTINATION "${INSTALL_LIB_DIR_STATIC}"
COMPONENT JDBCDev
) endif() #
# Install external dependencies of MySQL client library, such as OpenSSL,
# if bundled with client library installation.
#
# Note: if main connector uses OpenSSL, then we will use the same libraries
# to satisfy client library dependency. But if main connector does not use
# OpenSSL, we copy required dependencies from MySQL installation.
# if(BUNDLE_DEPENDENCIES AND WITH_SSL STREQUAL "bundled") message("Bundling OpenSSL libraries from: ${MYSQL_DIR}") install(DIRECTORY "${MYSQL_DIR}/bin/" DESTINATION lib64
FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}"
COMPONENT JDBCDev
) endif() #############################################################################
#
# Public header checks
# if(WITH_HEADER_CHECKS) # Prepare location where checks will be performed. set(CHECK_DIR "${JDBC_DIR}/headers_check") file(REMOVE_RECURSE "${CHECK_DIR}")
file(MAKE_DIRECTORY "${CHECK_DIR}") # Dirty trick to speed up cmake set up time. file(
COPY "${CMAKE_BINARY_DIR}/CMakeFiles/${CMAKE_VERSION}"
DESTINATION "${CHECK_DIR}/CMakeFiles"
) #
# Target to run header checks.
# ADD_CUSTOM_TARGET(Headers_jdbc
COMMAND ${CMAKE_COMMAND}
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
-DJDBC_DIR=${JDBC_DIR}
-DJDBC_INCLUDES="${JDBC_INCLUDES}"
-DHEADERS_DIR=${PROJECT_SOURCE_DIR}/cdk/cmake/headers
-DCHECK_DIR=${CHECK_DIR}
-P ${PROJECT_SOURCE_DIR}/cmake/jdbc_headers_check.cmake
SOURCES ${all_headers}
) add_dependencies(Headers_jdbc build_jdbc) add_test(NAME Headers_jdbc
COMMAND cmake --build . --target Headers_jdbc
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
message(STATUS "Added JDBC public headers test") endif() message("== legacy connector build configured")
message("== Configuring legacy connector build using cmake generator: ${CMAKE_GENERATOR}")
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/jdbc/CMakeLists.txt") message(FATAL_ERROR "Could not find JDBC API sources at ${PROJECT_SOURCE_DIR}/jdbc." " Have you updated git sub-modules?" )endif()
set(JDBC_DIR "${PROJECT_BINARY_DIR}/jdbc")
if(FORCE_REBUILD AND EXISTS "${JDBC_DIR}/CMakeCache.txt") file(REMOVE ${JDBC_DIR}/CMakeCache.txt)endif()file(MAKE_DIRECTORY "${JDBC_DIR}")
############################################################################### Configure legacy connector build environment in ${JDBC_DIR}#
if(BUILD_STATIC) list(APPEND jdbc_cmake_opts -DENABLE_BUILD_STATIC=ON)else() list(APPEND jdbc_cmake_opts -DENABLE_BUILD_DYNAMIC=ON)endif()
if(MAINTAINER_MODE) list(APPEND jdbc_cmake_opts -DENABLE_BUILD_STATIC=ON)endif()
if(MYSQL_DIR) list(APPEND jdbc_cmake_opts -DMYSQL_DIR=${MYSQL_DIR})endif()
if(MYSQL_CONFIG_EXECUTABLE) list(APPEND jdbc_cmake_opts -DMYSQL_CONFIG_EXECUTABLE=${MYSQL_CONFIG_EXECUTABLE})endif()
list(APPEND jdbc_cmake_opts -DMYSQLCLIENT_STATIC_LINKING=ON)
if(CMAKE_BUILD_TYPE) if(CMAKE_BUILD_TYPE MATCHES "[Ss][Tt][Aa][Tt][Ii][Cc]") list(APPEND jdbc_cmake_opts -DCMAKE_BUILD_TYPE=Release) else() list(APPEND jdbc_cmake_opts -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) endif()endif()
if(DEFINED STATIC_MSVCRT) list(APPEND jdbc_cmake_opts -DSTATIC_MSVCRT=${STATIC_MSVCRT})endif()
if(VS) list(APPEND jdbc_cmake_opts -DVS=${VS})endif()
## Find Boost which is required by legacy connector#
include(boost)list(APPEND jdbc_cmake_opts -DBOOST_ROOT=${BOOST_ROOT})
## Generate version info for legacy connector#
configure_file( "${PROJECT_SOURCE_DIR}/jdbc/VersionInfo.cmake.in" "${JDBC_DIR}/VersionInfo.cmake" @ONLY)
# Dirty trick to speed up cmake set up time.
file( COPY "${CMAKE_BINARY_DIR}/CMakeFiles/${CMAKE_VERSION}" DESTINATION "${JDBC_DIR}/CMakeFiles")
if(1)execute_process( COMMAND ${CMAKE_COMMAND} -Wno-dev -G "${CMAKE_GENERATOR}" ${jdbc_cmake_opts} -DCMAKE_INSTALL_PREFIX=${JDBC_DIR}/install -DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} ${PROJECT_SOURCE_DIR}/jdbc WORKING_DIRECTORY ${JDBC_DIR} RESULT_VARIABLE jdbc_config)endif()
if(jdbc_config) message(FATAL_ERROR "Could not configure legacy connector build: ${jdbc_config}")endif()
############################################################################### Target build_jdbc which triggers build and installation of the legacy# connector.#
## jdbc.buildstamp#
set(JDBC_BUILD_STAMP "${PROJECT_BINARY_DIR}/jdbc.buildstamp")file(REMOVE "${JDBC_BUILD_STAMP}")#message("JDBC_BUILD_STAMP: ${JDBC_BUILD_STAMP}")
set(CONFIG_EXPR $<$<CONFIG:Static>:Release>$<$<NOT:$<CONFIG:Static>>:$<CONFIGURATION>>)
add_custom_command(OUTPUT ${JDBC_BUILD_STAMP}
COMMAND ${CMAKE_COMMAND} -E remove_directory install COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CONFIG_EXPR} --clean-first
# Move installed headers from include/ to include/jdbc and rename lib/ # to lib64/ for 64-bit platform
COMMAND ${CMAKE_COMMAND} -E remove_directory install/jdbc COMMAND ${CMAKE_COMMAND} -E rename install/include install/jdbc COMMAND ${CMAKE_COMMAND} -E make_directory install/include COMMAND ${CMAKE_COMMAND} -E copy_directory install/jdbc install/include/jdbc COMMAND ${CMAKE_COMMAND} -E remove_directory install/jdbc
COMMAND ${CMAKE_COMMAND} -E touch ${JDBC_BUILD_STAMP}
WORKING_DIRECTORY ${JDBC_DIR} COMMENT "Building legacy connector library using configuration: $(Configuration)")
# Collect sources of legacy connector and specify them in the build# target.
unset(jdbc_sources)foreach(dir driver cppconn thread)
file( GLOB_RECURSE sources #RELATIVE "${PROJECT_SOURCE_DIR}/jdbc/${dir}" "${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.cpp" "${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.h" "${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.cmake" "${PROJECT_SOURCE_DIR}/jdbc/${dir}/*.cm" "${PROJECT_SOURCE_DIR}/jdbc/${dir}/CMakeLists.txt" )
# TODO: Split into Headers/Sources/Other sub-groups
source_group(${dir} FILES ${sources})
list(APPEND jdbc_sources ${sources})
endforeach()
add_custom_target(build_jdbc ALL DEPENDS ${JDBC_BUILD_STAMP} SOURCES ${jdbc_sources})
############################################################################### Import legacy connector library so that it can be used by other targets.#
set(JDBC_INCLUDES ${Boost_INCLUDE_DIRS} "${JDBC_DIR}/install/include")#message("legacy connector includes: ${JDBC_INCLUDES}")
## Import library targets exported from the legacy connector project.#
include("${JDBC_DIR}/exports.cmake")
if(BUILD_STATIC) set(JDBC_LIB mysqlcppconn-static)else() set(JDBC_LIB mysqlcppconn)endif()
add_dependencies(${JDBC_LIB} build_jdbc)
set(JDBC_LIBS ${JDBC_LIB} CACHE INTERNAL "legacy connector library")
############################################################################### Installation specs for the legacy connector#
get_target_property(configurations ${JDBC_LIB} IMPORTED_CONFIGURATIONS)
foreach(config ${configurations})
get_target_property(location ${JDBC_LIB} IMPORTED_LOCATION_${config}) message("jdbc installing: ${location}")
if(config STREQUAL DEBUG) set(loc "${INSTALL_LIB_DIR}/debug") set(loc_static "${INSTALL_LIB_DIR_STATIC}/debug") else() set(loc "${INSTALL_LIB_DIR}") set(loc_static "${INSTALL_LIB_DIR_STATIC}") endif()
if(BUILD_STATIC)
install( FILES ${location} CONFIGURATIONS ${config} DESTINATION ${loc_static} COMPONENT JDBCDev )
else()
if(WIN32)
install(FILES ${location} CONFIGURATIONS ${config} DESTINATION ${loc} COMPONENT JDBCDll)
# install import library for the DLL
get_target_property(imp_location ${JDBC_LIB} IMPORTED_IMPLIB_${config})
install( FILES ${imp_location} CONFIGURATIONS ${config} DESTINATION ${loc_static} COMPONENT JDBCDev )
else()
# We need to install soname and linkname links together with the shared # library.
get_filename_component(name "${location}" NAME) get_filename_component(loc_path "${location}" PATH) get_target_property(soname ${JDBC_LIB} IMPORTED_SONAME_${config}) set(linkname "${CMAKE_SHARED_LIBRARY_PREFIX}mysqlcppconn${CMAKE_SHARED_LIBRARY_SUFFIX}")
# # Warning: Using undocumented file(INSTALL ...) signature which creates # required symlinks. This command is used in install scripts generated # by cmake. #
install(CODE "file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${loc}\" TYPE SHARED_LIBRARY FILES \"${location}\" \"${loc_path}/${soname}\" \"${loc_path}/${linkname}\" )" )
endif()
endif()
endforeach()
install( DIRECTORY ${JDBC_DIR}/install/include/jdbc DESTINATION ${INSTALL_INCLUDE_DIR} COMPONENT JDBCDev)
## In maintainer mode add specifications for installing the static library# which is always built in this mode.#
if(MAINTAINER_MODE)
add_dependencies(mysqlcppconn-static build_jdbc) get_target_property(location mysqlcppconn-static IMPORTED_LOCATION_RELEASE) message("jdbc installing: ${location} (MAINTAINER_MODE)")
install( FILES ${location} CONFIGURATIONS Static DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT JDBCDev )
endif()
## Install external dependencies of MySQL client library, such as OpenSSL,# if bundled with client library installation.## Note: if main connector uses OpenSSL, then we will use the same libraries# to satisfy client library dependency. But if main connector does not use# OpenSSL, we copy required dependencies from MySQL installation.#
if(BUNDLE_DEPENDENCIES AND WITH_SSL STREQUAL "bundled")
message("Bundling OpenSSL libraries from: ${MYSQL_DIR}")
install(DIRECTORY "${MYSQL_DIR}/bin/" DESTINATION lib64 FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}" COMPONENT JDBCDev )
endif()
############################################################################### Public header checks#
if(WITH_HEADER_CHECKS)
# Prepare location where checks will be performed.
set(CHECK_DIR "${JDBC_DIR}/headers_check")
file(REMOVE_RECURSE "${CHECK_DIR}") file(MAKE_DIRECTORY "${CHECK_DIR}")
# Dirty trick to speed up cmake set up time.
file( COPY "${CMAKE_BINARY_DIR}/CMakeFiles/${CMAKE_VERSION}" DESTINATION "${CHECK_DIR}/CMakeFiles" )
# # Target to run header checks. #
ADD_CUSTOM_TARGET(Headers_jdbc COMMAND ${CMAKE_COMMAND} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DJDBC_DIR=${JDBC_DIR} -DJDBC_INCLUDES="${JDBC_INCLUDES}" -DHEADERS_DIR=${PROJECT_SOURCE_DIR}/cdk/cmake/headers -DCHECK_DIR=${CHECK_DIR} -P ${PROJECT_SOURCE_DIR}/cmake/jdbc_headers_check.cmake SOURCES ${all_headers} )
add_dependencies(Headers_jdbc build_jdbc)
add_test(NAME Headers_jdbc COMMAND cmake --build . --target Headers_jdbc WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) message(STATUS "Added JDBC public headers test")
endif()
message("== legacy connector build configured")
“CMake”这个名字是“cross platform make”的更多相关文章
- Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development
Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development If you are consi ...
- V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 2471245.1)
V4 Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 2471245. ...
- Gtest:Using visual studio 2017 cross platform feature to compile code remotely
参考:使用Visual Studio 2017作为Linux C++开发工具 前言 最近在学Gtest单元测试框架,由于平时都是使用Source Insight写代码,遇到问题自己还是要到Linux下 ...
- Cross Platform Note: STD C++ Preprocessor directives & pre-defined macros
ref: http://www.cplusplus.com/doc/tutorial/preprocessor/ concolusion: directives: #define #undef #in ...
- Cross platform
值得学习的C/C++语言开源项目 (1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html ...
- Cross platform GUI for creating SSL certs with OpenSSL
Someone said: from : https://micksmix.wordpress.com/2012/08/09/xca-cross-platform-gui-for-creating-s ...
- 非常陌生的cmake
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的 ...
- CMake编译linux C++
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的 ...
- centos 6.5下cmake工具的安装与配置
一.cmake是什么? CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C+ ...
随机推荐
- 저장소system.runtime.remoting.messaging.callcontext
https://msdn.microsoft.com/ko-kr/library/system.runtime.remoting.messaging.callcontext(v=vs.110).asp ...
- atitti.atiNav 手机导航组件的设计
atitti.atiNav 手机导航组件的设计 1.1. 三大按键导航功能,back,menu ,home1 1.2. header页头组件,为移动页面顶部的导航条设计.1 1.3. 页头主题设计1 ...
- atitit.jquery tmpl模板总结 .doc
atitit.jquery tmpl模板总结 .doc 1. atitit.动态模版解析1 1.1. Jquery.tmpl.js1 1.2. 比起anrular js方便啊.1 2. 动态模板引擎解 ...
- 2.请求库之requests
requests模块阅读目录: 介绍 基于GET请求 基于POST请求 响应Response 高级用法 一.介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requ ...
- js获取网页宽高
<script> function getInfo() { var s = ""; s += " 网页可见区域宽:"+ document.body. ...
- 小马哥课堂-统计学-t分布
T distribution 定义 在概率论和统计学中,学生t-分布(t-distribution),可简称为t分布,用于根据小样本来估计 呈正态分布且方差未知的总体的均值.如果总体方差已知(例如在样 ...
- STL源代码剖析——STL算法stl_algo.h
前言 在前面的博文中剖析了STL的数值算法.基本算法和set集合算法.本文剖析STL其它的算法,比如排序算法.合并算法.查找算法等等.在剖析的时候.会针对函数给出一些样例说明函数的使用.源代码出自SG ...
- dirname(__FILE__) 的使用总结 2(转)
比如当前文件是放在(d:\www\)下,文件名是test.php. 测试的代码如下: 复制代码 代码如下: <?php echo __FILE__ ; // 取得当前文件的绝对地址,结果:D:\ ...
- 差异:git clone , git fetch, git pull和git rebase
随笔 - 96 文章 - 1 评论 - 6 Git Pull据我所知,当你使用git pull时,它将会获取远程服务器(你请求的,无论什么分支)上的代码,并且立即合并到你的本地厂库,Pull是 ...
- 如何执行静默(无人参与)Java 安装?
http://www.java.com/zh_CN/download/help/silent_install.xml