|
1 | 1 | set(LLVM_LINK_COMPONENTS support)
|
2 | 2 |
|
3 |
| -# We need to generate the BuildVariables.inc file containing values which are |
4 |
| -# only defined when under certain build modes. Unfortunately, that precludes |
5 |
| -# doing this inside CMake so we have to shell out to sed. For now, that means we |
6 |
| -# can't expect to build llvm-config on Window.s |
7 | 3 | set(BUILDVARIABLES_SRCPATH ${CMAKE_CURRENT_SOURCE_DIR}/BuildVariables.inc.in)
|
8 | 4 | set(BUILDVARIABLES_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.inc)
|
9 |
| -set(SEDSCRIPT_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.configure.sed) |
10 | 5 |
|
11 | 6 | # Compute the substitution values for various items.
|
12 | 7 | get_system_libs(LLVM_SYSTEM_LIBS_LIST)
|
13 | 8 | foreach(l ${LLVM_SYSTEM_LIBS_LIST})
|
14 | 9 | set(SYSTEM_LIBS ${SYSTEM_LIBS} "-l${l}")
|
15 | 10 | endforeach()
|
16 |
| -set(C_FLGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
17 |
| -set(CXX_FLGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
18 |
| -set(CPP_FLGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
19 | 11 |
|
20 |
| -add_custom_command(OUTPUT ${BUILDVARIABLES_OBJPATH} |
21 |
| - COMMAND echo s!@LLVM_SRC_ROOT@!${LLVM_MAIN_SRC_DIR}! > ${SEDSCRIPT_OBJPATH} |
22 |
| - COMMAND echo s!@LLVM_OBJ_ROOT@!${LLVM_BINARY_DIR}! >> ${SEDSCRIPT_OBJPATH} |
23 |
| - COMMAND echo s!@LLVM_CPPFLAGS@!${CPP_FLGS}! >> ${SEDSCRIPT_OBJPATH} |
24 |
| - COMMAND echo s!@LLVM_CFLAGS@!${C_FLGS}! >> ${SEDSCRIPT_OBJPATH} |
25 |
| - COMMAND echo s!@LLVM_CXXFLAGS@!${CXX_FLGS}! >> ${SEDSCRIPT_OBJPATH} |
26 |
| - # TODO: Use general flags for linking! not just for shared libs: |
27 |
| - COMMAND echo s!@LLVM_LDFLAGS@!${CMAKE_SHARED_LINKER_FLAGS}! >> ${SEDSCRIPT_OBJPATH} |
28 |
| - COMMAND echo s!@LLVM_BUILDMODE@!${CMAKE_BUILD_TYPE}! >> ${SEDSCRIPT_OBJPATH} |
29 |
| - COMMAND echo s!@LLVM_SYSTEM_LIBS@!${SYSTEM_LIBS}! >> ${SEDSCRIPT_OBJPATH} |
30 |
| - COMMAND echo s!@LLVM_TARGETS_BUILT@!${LLVM_TARGETS_TO_BUILD}! >> ${SEDSCRIPT_OBJPATH} |
31 |
| - COMMAND sed -f ${SEDSCRIPT_OBJPATH} < ${BUILDVARIABLES_SRCPATH} > ${BUILDVARIABLES_OBJPATH} |
32 |
| - VERBATIM |
33 |
| - COMMENT "Building BuildVariables.inc include." |
34 |
| - ) |
| 12 | +# Use configure_file to create BuildVariables.inc. |
| 13 | +set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) |
| 14 | +set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) |
| 15 | +set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
| 16 | +set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
| 17 | +set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
| 18 | +set(LLVM_LDFLAGS ${CMAKE_SHARED_LINKER_FLAGS}) |
| 19 | +set(LLVM_BUILDMODE ${CMAKE_BUILD_TYPE}) |
| 20 | +set(LLVM_SYSTEM_LIBS ${SYSTEM_LIBS}) |
| 21 | +set(LLVM_TARGETS_BUILT ${LLVM_TARGETS_TO_BUILD}) |
| 22 | +configure_file(${BUILDVARIABLES_SRCPATH} ${BUILDVARIABLES_OBJPATH} @ONLY) |
35 | 23 |
|
36 | 24 | # Add the llvm-config tool.
|
37 | 25 | add_llvm_tool(llvm-config
|
|
0 commit comments