Home | History | Annotate | Download | only in llvm-config
      1 set(LLVM_LINK_COMPONENTS support)
      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 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)
     10 
     11 # Compute the substitution values for various items.
     12 get_system_libs(LLVM_SYSTEM_LIBS_LIST)
     13 foreach(l ${LLVM_SYSTEM_LIBS_LIST})
     14   set(SYSTEM_LIBS ${SYSTEM_LIBS} "-l${l}")
     15 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 
     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   )
     35 
     36 # Add the llvm-config tool.
     37 add_llvm_tool(llvm-config
     38   llvm-config.cpp
     39   )
     40 
     41 # Add the dependency on the generation step.
     42 add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH})
     43