标签: build-automation

让CMake递归扫描文件夹?

如何设置CMake以递归方式扫描给定目录并确定源文件列表?

我的项目是一个共享库.我有一个与此类似的文件夹结构:

/
  src/              # Source files in an arbitrary tree
  include/          # Headers, tree mirrors that of the src/ folder
  examples/         # Executable code examples that link against the library
  CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

我想避免:

  • 用无尽的文件污染srcinclude目录src/
  • 每次我更改文件夹结构时都必须更改和修改脚本

但是,每个示例都可以拥有自己的构建脚本.

build-automation build-process build cmake build-system

38
推荐指数
1
解决办法
3万
查看次数

詹金斯构建步骤超时

在Jenkins中,有没有办法为每个或选定的构建步骤提供不同的超时?
构建时插件提供了超时功能"如果它被卡住了就完成项目中止",我需要的是为每个步骤提供不同的超时.这样我就可以提高我的流程效率.

build-automation build-process jenkins jenkins-plugins

38
推荐指数
8
解决办法
5万
查看次数

如何在编译期间强制cmake包含"-pthread"选项?

我知道有类似的东西,find_package(Threads)但它似乎没有什么区别(至少本身).现在我正在使用SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-pthread"),但它对我来说看起来不是一个正确的解决方案.

build-automation gcc build cmake

37
推荐指数
3
解决办法
4万
查看次数

配置Intellij IDEA以运行批处理文件

我正在使用InteliJ IDEA(社区添加),我发现自己在项目文件夹中进行了一些文件传输.在将任务重新调整一段时间后,我创建了一些自动传输文件的批处理脚本.现在,如果我可以直接从IDE运行脚本,我会更高兴 - 例如按一个按钮......

问题是:我可以向IntelliJ IDE添加按钮 - 这将运行批处理文件吗?如果有可能,我会很高兴知道如何做到这一点.

谢谢!

build-automation batch-file intellij-idea

35
推荐指数
3
解决办法
2万
查看次数

如何在.NET ClickOnce应用程序中将发布版本与程序集版本同步?

在我的C#ClickOnce应用程序中,项目 - > 属性 - > 发布选项卡中有一个自动递增的发布版本.我想在我的菜单帮助 - > 关于框中显示该版本,但我正在使用的代码显然访问了程序集版本,这是不同的.

可以在项目 - > 属性 - > 应用程序 - >装配信息对话框中手动更改装配版本.所以现在,每次我发布之前我都会将发布版本复制到汇编版本,所以我的对话框显示了当前版本的应用程序.必须有更好的方法来做到这一点.

我真正想做的就是拥有一个准确的,自动更新的,代码可访问的版本号.

这是我用来访问程序集版本号的代码:

public string AssemblyVersion
{
    get
    {
        return Assembly.GetExecutingAssembly().GetName().Version.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是找到访问发布版本的代码.

c# build-automation clickonce version

34
推荐指数
3
解决办法
2万
查看次数

如何确定以目录为根的最新SVN修订版号?

我想用最新的SVN版本号开始标记我已部署的二进制文件.

但是,因为SVN是基于文件而不是基于目录/项目的,所以我需要扫描所有目录和子目录的文件,以确定最高版本号.

svn info在root上使用不起作用(它只报告该目录的版本,而不是子目录中的文件):

我想知道是否有使用该svn命令执行此操作的快捷方式.否则,任何人都可以建议一个网络效率的简单脚本(我更喜欢它根本没有点击远程服务器)?

我也明白,一个可供选择的方法是保持一个版本的文件svn:keywords.这工作(我已经在其他项目上使用过它),但我厌倦了确保文件是脏的并处理不可避免的合并冲突.

回答svn up在调用svn info根目录之前看到我的问题在于没有做正确的事情:

$ svn info
Path: .
...
Last Changed Author: fak
Last Changed Rev: 713
Last Changed Date: 2008-08-29 00:40:53 +0300 (Fri, 29 Aug 2008)

$ svn up
At revision 721.

$ svn info
Path: .
...
Revision: 721
Last Changed Author: reuben
Last Changed Rev: 721
Last Changed Date: 2008-08-31 22:55:22 +0300 (Sun, 31 Aug 2008)
Run Code Online (Sandbox Code Playgroud)

svn build-automation

33
推荐指数
3
解决办法
4万
查看次数

在Hudson中的作业之间共享构建工件

我正在尝试在哈德森中建立我们的构建过程.

作业1将是一个超级快速(希望)持续集成构建作业,将经常构建.

作业2,将负责定期运行综合测试套件或手动触发.

Job 3将负责在整个代码库中运行分析工具(非常类似于Job 2).

我尝试使用"高级项目选项>使用自定义工作区"功能,以便在作业1中编译的代码可以在作业2和3中使用.但是,似乎所有构建工件都保留在作业1工作区内.我这样做对吗?有没有更好的方法呢?我想我正在寻找类似于构建管道设置的东西......这样就可以共享东西,并且可以分阶段执行相应的工作.

(我也考虑使用'批处理任务'......但似乎无法安排那些?只能手动触发?)

欢迎任何建议.谢谢!

build-automation continuous-integration build-process hudson build

33
推荐指数
3
解决办法
2万
查看次数

编程定义:究竟是什么'建筑'.

构建解决方案/项目/计划意味着什么?我想确保我的定义是正确的(所以我在谈话时听起来不像个白痴).在IDE的,你可以(纠正我,如果我错了)编译源代码/编程码成计算机可读的机器代码.您可以调试程序,这基本上是通过程序逐步执行并查找错误.

但是,构建一个程序究竟做了什么呢?在VS中,我知道在构建程序时,它会在调试文件夹中生成一个可执行文件.

关于构建程序意味着什么的任何核心技术定义?

build-automation build-process build definition

33
推荐指数
4
解决办法
2万
查看次数

Xcode - 自动将文件夹中的所有文件添加到目标

在Xcode中,有没有办法指定文件夹中的所有文件都是由目标编译的.例如.'Test'目标自动编译'Tests'文件夹中的所有文件,而'App'目标编译'Sources'文件夹中的所有内容.

今天,我这样做的方法是每次创建一个文件到目标.由于文件已经组织在正确的文件夹中,因此感觉有点容易出错和冗余.

谢谢.

build-automation xcode build-process build

33
推荐指数
4
解决办法
3万
查看次数

使用cmake的autotools构建库

这是我对cmake的第一次尝试,如果可能的话,我希望有一些关于我做了什么的反馈,因为一些问题仍然存在.

在库文件夹的CMakeLists.txt中,我创建了两个makefile目标:configure-antlr3cantlr3c.第一个目标运行autotools配置shell脚本,第二个目标运行make可执行文件来构建库:

# CMakeLists.txt in libantlr3c-3.1.3 
add_custom_target(
  configure-antlr3c
  ${SHELL_EXECUTABLE} configure
  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)

add_custom_target(
  antlr3c
   ${MAKE}
   DEPENDS configure-antlr3c
   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
Run Code Online (Sandbox Code Playgroud)

主要问题是configure-antlr3c目标总是"过时",因此即使没有发生任何变化也会始终执行.此外,我一定需要在一个单独的目录中生成我的cmake makefile(不在我的项目的根目录中),以避免覆盖库的autotools Makefile ...

有谁有这个问题(用cmake构建autotools项目)?如果是这样,你的解决方案是什么?

谢谢.

编辑:解决方案 在根CMakeLists.txt中:

include(ExternalProject)
ExternalProject_Add(
  libantlr3c
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
  BUILD_COMMAND make
  BUILD_IN_SOURCE 1
)
Run Code Online (Sandbox Code Playgroud)

build-automation build-process autotools cmake antlr3

33
推荐指数
2
解决办法
2万
查看次数