当前位置: 首页 > news >正文

宁波制作网站企业有哪些可以做微课PPT模板 网站

宁波制作网站企业有哪些,可以做微课PPT模板 网站,小程序定制要多少钱,学做网站可以赚钱吗准备 windows下设置文件的版本需要通过VERSIONINFO接口#xff0c;详情参考VERSIONINFO resource。这里我们根据模板做了一定的修改。 1 VERSIONINFOFILEVERSION ${GIT_VERSION} //文件版本号#xff0c;必填。以,分隔#xff0c;输出以.分隔。这里是取CMakeLists里的GIT_…准备 windows下设置文件的版本需要通过VERSIONINFO接口详情参考VERSIONINFO resource。这里我们根据模板做了一定的修改。 1 VERSIONINFOFILEVERSION ${GIT_VERSION} //文件版本号必填。以,分隔输出以.分隔。这里是取CMakeLists里的GIT_VERSION变量PRODUCTVERSION ${GIT_VERSION} //产品版本号必填。以,分隔。虽然没起作用见下面的ProductVersionFILEFLAGSMASK 0x17L #ifdef _DEBUGFILEFLAGS 0x1L #elseFILEFLAGS 0x0L #endifFILEOS 0x4LFILETYPE 0x0LFILESUBTYPE 0x0L BEGINBLOCK StringFileInfoBEGINBLOCK 040904b0BEGINVALUE FileDescription, MyLibrary Binary //文件说明VALUE FileVersion, 1.1.1 //文件版本好像没啥用只与FILEVERSION相关VALUE InternalName, //VALUE LegalCopyright, Copyright (C) 2019VALUE OriginalFilename, VALUE ProductName, 1234 //产品名称VALUE ProductVersion, 1.3.4.5.6 //产品版本与PRODUCTVERSION无关,直接输出 //${PROJECT_VERSION_MAJOR},${PROJECT_VERSION_MINOR},${PROJECT_VERSION_PATCH},${PROJECT_VERSION_TWEAK}ENDENDBLOCK VarFileInfoBEGINVALUE Translation, 0x409, 1200END END 注意事项 FILEVERSION和PRODUCTVERSION为必填项。内容以,分隔输出以.分隔(如设置为1,1,3,5则实际输出版本为1.1.3.5)。可以直接是一整个变量也可以是多个变量以,隔开。而后面BLOCK块中内容都是全量输出不做调整。目前实验显示FILEVERSION内容管理实际输出的文件版本号而产品版本号不由PRODUCTVERSION管理反而由后面BLOK块中的ProductVersion控制。不知道是为啥。 调用versioninfo 前面已经准备号了versioninfo.接下来需要在CMakeLists中接入versioninfo。 首先将上面的versioninfo模板内容写入到文件中并命名为versioninfo.rc(名字不重要只要后续引用这个文件即可)先在CMakeLists中手动写一个版本号(动态获取后面介绍),GIT_VERSION与versioninfo.rc中引用的变量名保持一致 set(GIT_VERSION 1,2,0,4) 通过config_file()命令将文件拷贝到指定文件或目录下。这里使用的时MSVC编译器所以对MSVC进行判断了。 if(MSVC)set(VERSIONINFO_RC ${CMAKE_BINARY_DIR}/versioninfo.rc)configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc${VERSIONINFO_RC}) endif() 创建输出文件(dll/exe)时包含versioninfo.rc资源 add_executable(${PROJECT_NAME} ${SOURCES} ${VERSIONINFO_RC}) cmake之后编译查看生成的可执行文件详细信息内容。 动态获取版本号 这里采用的是cmake的execute_process运行git命令获取版本并对结果进行截取组合达到我们想要的内容。 execute_process表示运行命令可以与git其他命令结合获取其他信息。 ####################### ####获取git版本######### ####################### #设置默认版本 set(GIT_VERSION 1.0.0) #通过git命令获取版本 execute_process(COMMAND git describe --tags OUTPUT_VARIABLE GIT_DESCRIBE)# set(GIT_DESCRIBE ${GIT_DESCRIBE}-8-) #查找版本 string(REGEX MATCH [0-9]\\.[0-9]\\.[0-9] GIT_DESCRIBE_VERSION ${GIT_DESCRIBE}) message(STATUS GIT_DESCRIBE_VERSION${GIT_DESCRIBE_VERSION}) if(NOT ${GIT_DESCRIBE_VERSION} EQUAL ) set(GIT_VERSION ${GIT_DESCRIBE_VERSION}) endif()#查找提交次数 string(REGEX MATCHALL -([0-9])- MATCH_COMMIT_RET ${GIT_DESCRIBE}) message(STATUS MATCH_COMMIT_RET${MATCH_COMMIT_RET}) list(LENGTH MATCH_COMMIT_RET MATCH_COMMIT_RET_LEN)message(STATUS MATCH_COMMIT_RET_LEN${MATCH_COMMIT_RET_LEN})if(${MATCH_COMMIT_RET_LEN} GREATER 0) #拿到最后一个匹配项 math(EXPR MATCH_COMMIT_RET_LEN ${MATCH_COMMIT_RET_LEN} - 1) message(STATUS MATCH_COMMIT_RET_LEN${MATCH_COMMIT_RET_LEN}) list(GET MATCH_COMMIT_RET ${MATCH_COMMIT_RET_LEN} MATCH_LAST) #获取 string(REGEX REPLACE -(.)- \\1 GIT_COMMIT_COUNT ${MATCH_LAST}) set(GIT_VERSION ${GIT_VERSION}.${GIT_COMMIT_COUNT}) else()#没有则默认写0 set(GIT_VERSION ${GIT_VERSION}.0) endif()string(REPLACE . , GIT_VERSION ${GIT_VERSION}) # set(GIT_VERSION 1,2,0) # message(STATUS final version is ${GIT_VERSION}) ##################################END####################################### 缺陷 这里因为是按照我们设想的git tag版本格式(x.x.x)并根据git describe会自动返回version-提交次数-g当前提交hash内容所写的。目的就是提炼成version.提交次数也就是x.x.x.x形式。所以这就要求在打tag的时候需要注意一定的格式否则这个代码将不起作用。 此外git describe对于轻量标签不起作用只有附注标签生效。 完整代码 cmake_minimum_required(VERSION 3.10)project(gitversion)####################### ####获取git版本######### ####################### #设置默认版本 set(GIT_VERSION 1.0.0) #通过git命令获取版本 execute_process(COMMAND git describe --tagsOUTPUT_VARIABLE GIT_DESCRIBE)# set(GIT_DESCRIBE ${GIT_DESCRIBE}-8-) #查找版本 string(REGEX MATCH [0-9]\\.[0-9]\\.[0-9] GIT_DESCRIBE_VERSION ${GIT_DESCRIBE}) message(STATUS GIT_DESCRIBE_VERSION${GIT_DESCRIBE_VERSION}) if(NOT ${GIT_DESCRIBE_VERSION} EQUAL )set(GIT_VERSION ${GIT_DESCRIBE_VERSION}) endif()#查找提交次数 string(REGEX MATCHALL -([0-9])- MATCH_COMMIT_RET ${GIT_DESCRIBE}) message(STATUS MATCH_COMMIT_RET${MATCH_COMMIT_RET}) list(LENGTH MATCH_COMMIT_RET MATCH_COMMIT_RET_LEN)message(STATUS MATCH_COMMIT_RET_LEN${MATCH_COMMIT_RET_LEN})if(${MATCH_COMMIT_RET_LEN} GREATER 0)#拿到最后一个匹配项math(EXPR MATCH_COMMIT_RET_LEN ${MATCH_COMMIT_RET_LEN} - 1)message(STATUS MATCH_COMMIT_RET_LEN${MATCH_COMMIT_RET_LEN})list(GET MATCH_COMMIT_RET ${MATCH_COMMIT_RET_LEN} MATCH_LAST)#获取string(REGEX REPLACE -(.)- \\1 GIT_COMMIT_COUNT ${MATCH_LAST})set(GIT_VERSION ${GIT_VERSION}.${GIT_COMMIT_COUNT}) else()#没有则默认写0set(GIT_VERSION ${GIT_VERSION}.0) endif()string(REPLACE . , GIT_VERSION ${GIT_VERSION}) # set(GIT_VERSION 1,2,0) # message(STATUS final version is ${GIT_VERSION}) ##################################END########################################这里需要注意按顺序 if(MSVC)set(VERSIONINFO_RC ${CMAKE_BINARY_DIR}/versioninfo.rc)configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc${VERSIONINFO_RC}) endif()file(GLOB SOURCES *.cpp) add_executable(${PROJECT_NAME} ${SOURCES} ${VERSIONINFO_RC})target_include_directories(${PROJECT_NAME} PRIVATE${CMAKE_SOURCE_DIR}) 注意事项 需要注意这里add_executable中引用了versioninfo.rc文件而versioninfo.rc文件中引用了GIT_VERSION变量所以GIT_VERSION变量的获取需要放在最前面然后是引入versioninfo.rc最后是add_executable否则会导致编译时GIT_VERSION变量内容为空编译不过。 其他 另一种方式是通过cmake的PROJECT_VERSION,PROJECT_VERSION_MAJOR, PROJECT_VERSION_MINOR, PROJECT_VERSION_PATCH, PROJECT_VERSION_TWEAK来获取,但是无法动态调整版本号需要手动修改。 代码如下 cmake_minimum_required(VERSION 3.10)project(cmakeversion VERSION 1.2.5.8)#这里需要注意按顺序 if(MSVC)set(VERSIONINFO_RC ${CMAKE_BINARY_DIR}/versioninfo.rc)configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc${VERSIONINFO_RC}) endif()file(GLOB SOURCES *.cpp) add_executable(${PROJECT_NAME} ${SOURCES} ${VERSIONINFO_RC})target_include_directories(${PROJECT_NAME} PRIVATE${CMAKE_SOURCE_DIR})include(CMakePackageConfigHelpers) configure_package_config_file(Config.cmake.in${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmakeINSTALL_DESTINATION lib/cmake/${PROJECT_NAME}) write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmakeVERSION ${PACKAGE_VERSION} COMPATIBILITY AnyNewerVersion )install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmakeDESTINATION lib/cmake/${PROJECT_NAME} )message(status version${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_TWEAK}) 此外需要引用Config.cmake.in PACKAGE_INITset_and_check(CMAKEVERSION_INCLUDE_DIR PACKAGE_INCLUDE_INSTALL_DIR) set_and_check(CMAKEVERSION_SYSCONFIG_DIR PACKAGE_SYSCONFIG_INSTALL_DIR)check_required_components(Cmakeversion)
http://www.hkea.cn/news/14338723/

相关文章:

  • 湖州集团网站建设达州建设机械网站
  • php网站开发实例视频教程大专毕业设计怎么做
  • 深圳官方网站泰安房产最新网签情况
  • 做网站的天空网嘉兴丝绸大厦做网站的公司
  • 郑州做网站要多少钱个人网页免费域名注册入口
  • 纯html网站开发工具深圳网站建设 合作品牌
  • php网站开发环境一威海市网站建设
  • 母婴网站的功能设计招商网站开发
  • 建美食网站有哪些原因wordpress默认安装目录
  • php怎么创建网站什么是门户网站
  • 网站模板 免费下载杭州品牌网站设计制作公司
  • 学习网站建设论文阿里云做网站可以吗
  • 直播平台创建公会佛山网站建设乐云seo在线制作
  • 怎么做php网站深圳做网站建设和维护专员管理层
  • 潍坊seo建站谷歌优化技术
  • 企业管理的官方网站有哪些流感用什么药最好
  • 专做民宿预定的网站大兴模版网站开发公司哪家好
  • 您的网站对百度设置了ua封禁z怎么解决wordpress自动轮播图插件
  • 麻城网站建设公司虚拟商城平台
  • 网络推广网站套餐付网站建设费用会计分录
  • 展示型网站都包括什么模块专业模板网站设计公司
  • 网站建设登录页面怎么写wordpress菜单用处
  • 珠海市网站建设哪家好wordpress启动广告
  • 做网站的软件项目进度计划互联网营销渠道有哪些
  • 餐饮品牌设计网站建设男孩子怎么做网站
  • 江苏省 建设 注册中心网站wordpress seo优化插件
  • 只买域名不建网站网络科技公司有什么职位
  • wordpress中有趣的插件太原关键词优化服务
  • 淄博网站建设多太原网页设计师招聘信息
  • 营销型企业网站建设规划探讨discuz轉wordpress