Usted sólo puede usar CMake, es bastante sencillo.
usted necesita estas cosas:
En primer lugar, los medios para averiguar los detalles de configuración. Por ejemplo, si sabe que alguna función se denomina de forma diferente en alguna plataforma, puede utilizar TRY_COMPILE
al descubrir que:
TRY_COMPILE(HAVE_ALTERNATIVE_FUNC
${CMAKE_BINARY_DIR}
${CMAKE_SOURCE_DIR}/alternative_function_test.cpp
CMAKE_FLAGS -DINCLUDE_DIRECTORIES=xxx
)
donde alternative_function_test.cpp
es un archivo en el directorio de origen que compila sólo con la definición alternativa.
Esto definirá la variable HAVE_ALTERNATIVE_FUNC
si la compilación tiene éxito.
En segundo lugar, debe hacer que esta definición afecte sus fuentes. O se puede añadir a compilar banderas
IF(HAVE_TR1_RANDOM)
ADD_DEFINITIONS(-DHAVE_TR1_RANDOM)
ENDIF(HAVE_TR1_RANDOM)
o se puede hacer un archivo config.h
. Crear config.h.in
con la siguiente línea
#cmakedefine HAVE_ALTERNATIVE_FUNCS
y crear un archivo config.h
por esta línea en CMakeLists.txt
(ver CONFIGURE_FILE
)
CONFIGURE_FILE(config.h.in config.h @ONLY)
la #cmakedefine
se traducirán a #define
o #undef
en función de la variable CMake.
Por cierto, para edianness prueba, ver this mail
ventanas nunca será un objetivo para mí espero;) – claf