Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit 3eb7322

Browse files
committed
CMake: build llvm-config on Windows.
It was previously not being built on Windows because the cmake file relied on a sed script to generate a .in file that llvm-config needs. By using cmake's configure_file function, we can get rid off the sed hack, and also have this work on Windows. Differential Revision: http://llvm-reviews.chandlerc.com/D1481 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189125 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 12d3dc7 commit 3eb7322

File tree

2 files changed

+12
-30
lines changed

2 files changed

+12
-30
lines changed

tools/CMakeLists.txt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@
22
# three small executables. This is done to minimize memory load in parallel
33
# builds. Please retain this ordering.
44

5-
if( NOT WIN32 OR MSYS OR CYGWIN )
6-
# We currently require 'sed' to build llvm-config, so don't try to build it
7-
# on pure Win32.
8-
add_llvm_tool_subdirectory(llvm-config)
9-
else()
10-
ignore_llvm_tool_subdirectory(llvm-config)
11-
endif()
5+
add_llvm_tool_subdirectory(llvm-config)
126

137
add_llvm_tool_subdirectory(opt)
148
add_llvm_tool_subdirectory(llvm-as)

tools/llvm-config/CMakeLists.txt

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,25 @@
11
set(LLVM_LINK_COMPONENTS support)
22

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
73
set(BUILDVARIABLES_SRCPATH ${CMAKE_CURRENT_SOURCE_DIR}/BuildVariables.inc.in)
84
set(BUILDVARIABLES_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.inc)
9-
set(SEDSCRIPT_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.configure.sed)
105

116
# Compute the substitution values for various items.
127
get_system_libs(LLVM_SYSTEM_LIBS_LIST)
138
foreach(l ${LLVM_SYSTEM_LIBS_LIST})
149
set(SYSTEM_LIBS ${SYSTEM_LIBS} "-l${l}")
1510
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}")
1911

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)
3523

3624
# Add the llvm-config tool.
3725
add_llvm_tool(llvm-config

0 commit comments

Comments
 (0)