我想知道我怎么可以做一个便携式建立系统(步骤),我目前使用cmake,因为它便于设置在首位,只有一个拱形的目标,但是现在我必须包图书馆我发展我不知道如何是最好的方式,以使其便携式拱我测试。

我知道我需要一个配置。h定义事情取决于拱但我不知道如何自动的,这可。

任何其他方式具有一个建立系统的热烈欢迎!

有帮助吗?

解决方案

你可以使用CMake,这是很简单的。

你需要这些东西:

第一,意味着要找出配置的具体细节。例如,如果知道某些功能是不同的名称,一些平台,可以使用 TRY_COMPILE 要发现:

TRY_COMPILE(HAVE_ALTERNATIVE_FUNC 
    ${CMAKE_BINARY_DIR}
    ${CMAKE_SOURCE_DIR}/alternative_function_test.cpp
    CMAKE_FLAGS -DINCLUDE_DIRECTORIES=xxx
)

哪里 alternative_function_test.cpp 文件在您的来源目录,汇编只与备选定义。

这将确定可变 HAVE_ALTERNATIVE_FUNC 如果汇编成功。

第二,需要使这个定义影响你的来源。要么你可以将它添加到汇编的标志

IF(HAVE_TR1_RANDOM)
    ADD_DEFINITIONS(-DHAVE_TR1_RANDOM)
ENDIF(HAVE_TR1_RANDOM)

或者你可以做一个 config.h 文件。创建 config.h.in 与下面一行

#cmakedefine HAVE_ALTERNATIVE_FUNCS

并创建一个 config.h 文件通过此线 CMakeLists.txt (见 CONFIGURE_FILE)

CONFIGURE_FILE(config.h.in config.h @ONLY)

#cmakedefine 将被翻译成 #define#undef 根据CMake变量。

顺便说一句,用于测试edianness,请参阅 这个邮件

其他提示

我一直在使用这为我至今运作良好的GNU的autoconf / automake的工具链。我才真正集中在Linux / x86平台(和64位)和Mac,如果你是在一个PowerPC建设是重要的,因为端的问题。

使用autoconf的,你可以检查主机平台的宏:

AC_CANONICAL_HOST

和使用检查字节序:

AC_C_BIGENDIAN

的Autoconf会再加入定义,config.h中,你可以在你的代码中使用。

我不能肯定(从未尝试过)GNU自动在Windows上如何工作,所以Windows是否是你的目标之一,那么你可能会更好找到与您现有的CMake构建系统类似的功能。

有关自动工具的好底漆,看看这里:

http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool

scroll top