Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 1 | set(LLVM_LINK_COMPONENTS support) |
Oscar Fuentes | a229b3c | 2008-09-22 01:08:49 +0000 | [diff] [blame] | 2 | |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 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 | set(BUILDVARIABLES_SRCPATH ${CMAKE_CURRENT_SOURCE_DIR}/BuildVariables.inc.in) |
| 8 | set(BUILDVARIABLES_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.inc) |
| 9 | set(SEDSCRIPT_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.configure.sed) |
Oscar Fuentes | a229b3c | 2008-09-22 01:08:49 +0000 | [diff] [blame] | 10 | |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 11 | # Compute the substitution values for various items. |
Oscar Fuentes | 10a71da | 2009-05-27 15:49:33 +0000 | [diff] [blame] | 12 | get_system_libs(LLVM_SYSTEM_LIBS_LIST) |
| 13 | foreach(l ${LLVM_SYSTEM_LIBS_LIST}) |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 14 | set(SYSTEM_LIBS ${SYSTEM_LIBS} "-l${l}") |
Oscar Fuentes | 10a71da | 2009-05-27 15:49:33 +0000 | [diff] [blame] | 15 | endforeach() |
Oscar Fuentes | cde00a5 | 2011-04-01 19:36:06 +0000 | [diff] [blame] | 16 | set(C_FLGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
Oscar Fuentes | cde00a5 | 2011-04-01 19:36:06 +0000 | [diff] [blame] | 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}") |
Oscar Fuentes | bda403b | 2009-04-04 22:41:07 +0000 | [diff] [blame] | 19 | |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 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} |
Oscar Fuentes | cf03f4b | 2009-04-03 12:16:32 +0000 | [diff] [blame] | 26 | # TODO: Use general flags for linking! not just for shared libs: |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 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 sed -f ${SEDSCRIPT_OBJPATH} < ${BUILDVARIABLES_SRCPATH} > ${BUILDVARIABLES_OBJPATH} |
Oscar Fuentes | cae1b90 | 2011-03-19 22:52:33 +0000 | [diff] [blame] | 31 | VERBATIM |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 32 | COMMENT "Building BuildVariables.inc include." |
Oscar Fuentes | a229b3c | 2008-09-22 01:08:49 +0000 | [diff] [blame] | 33 | ) |
| 34 | |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 35 | # Add the llvm-config tool. |
| 36 | add_llvm_tool(llvm-config |
| 37 | llvm-config.cpp |
| 38 | ) |
Chandler Carruth | 76f9e57 | 2011-11-02 17:22:57 +0000 | [diff] [blame] | 39 | |
Daniel Dunbar | ab0ad4e | 2011-12-01 20:18:09 +0000 | [diff] [blame^] | 40 | # Add the dependency on the generation step. |
| 41 | add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH}) |