1 | # -*- mode: cmake; -*- |
---|
2 | # |
---|
3 | # |
---|
4 | # |
---|
5 | |
---|
6 | function(ip_create_version GET_TARGET GET_FILE) |
---|
7 | message(STATUS "generate si_gcc_v.h") |
---|
8 | |
---|
9 | set(_GEN_TARGET "ip-inc") |
---|
10 | set(_GEN_FILE "${CMAKE_CURRENT_BINARY_DIR}/si_gcc_v.h") |
---|
11 | |
---|
12 | if(${CMAKE_CXX_COMPILER_MAJOR} EQUAL 2) |
---|
13 | file(WRITE ${_GEN_FILE} "#define SI_GCC2\n") |
---|
14 | endif(${CMAKE_CXX_COMPILER_MAJOR} EQUAL 2) |
---|
15 | if(${CMAKE_CXX_COMPILER_MAJOR} EQUAL 3) |
---|
16 | file(WRITE ${_GEN_FILE} "#define SI_GCC3\n") |
---|
17 | endif(${CMAKE_CXX_COMPILER_MAJOR} EQUAL 3) |
---|
18 | if(${CMAKE_CXX_COMPILER_MAJOR} EQUAL 4) |
---|
19 | file(WRITE ${_GEN_FILE} "#define SI_GCC4\n") |
---|
20 | endif(${CMAKE_CXX_COMPILER_MAJOR} EQUAL 4) |
---|
21 | |
---|
22 | set(${GEN_TARGET} ${_GEN_TARGET} PARENT_SCOPE) |
---|
23 | set(${GEN_FILE} ${_GEN_FILE} PARENT_SCOPE) |
---|
24 | endfunction() |
---|
25 | |
---|
26 | include(CheckCSourceRuns) |
---|
27 | |
---|
28 | function(ip_create_version2 GEN_TARGET GEN_FILE) |
---|
29 | message(STATUS "generate si_gcc_v.h") |
---|
30 | |
---|
31 | set(_GEN_TARGET "ip-inc") |
---|
32 | set(_GEN_FILE "${CMAKE_CURRENT_BINARY_DIR}/si_gcc_v.h") |
---|
33 | set(TESTFILE "${CMAKE_CURRENT_BINARY_DIR}/tmp.c") |
---|
34 | set(_TEST_SOURCE "#include <stdio.h> |
---|
35 | int main() { |
---|
36 | FILE *f=fopen(\"${_GEN_FILE}\",\"w\"); |
---|
37 | #ifdef __GNUC__ |
---|
38 | char *p=__VERSION__; |
---|
39 | if (p[0]=='2') fprintf(f,\"#define SI_GCC2\\n\"); |
---|
40 | else if ((p[0]=='3')||(p[0]=='4')) fprintf(f,\"#define SI_GCC3\\n\"); |
---|
41 | #endif |
---|
42 | fclose(f); |
---|
43 | return 0; |
---|
44 | } |
---|
45 | ") |
---|
46 | CHECK_C_SOURCE_RUNS(${_TEST_SOURCE} RUN_RESULT_VAR) |
---|
47 | message(STATUS "compile : '${_GEN_FILE}'") |
---|
48 | message(STATUS "run : '${RUN_RESULT_VAR}'") |
---|
49 | message(STATUS "rc : '${_TEST_SOURCE}'") |
---|
50 | |
---|
51 | add_custom_target(ip-inc DEPENDS ${_GEN_FILE} ) |
---|
52 | set(${GEN_TARGET} ${_GEN_TARGET} PARENT_SCOPE) |
---|
53 | set(${GEN_FILE} ${_GEN_FILE} PARENT_SCOPE) |
---|
54 | endfunction() |
---|