[PATCH] Headers: Install a symlink from ${MAJOR}.${MINOR} to ${MAJOR}.${MINOR}.${PATCH}
Tom Stellard
thomas.stellard at amd.com
Fri Mar 7 10:24:48 PST 2014
---
lib/Headers/CMakeLists.txt | 21 ++++++++++++++++++---
lib/Headers/Makefile | 27 ++++++++++++++++++++-------
2 files changed, 38 insertions(+), 10 deletions(-)
diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
index d0c2684..fe9a133 100644
--- a/lib/Headers/CMakeLists.txt
+++ b/lib/Headers/CMakeLists.txt
@@ -48,7 +48,9 @@ set(files
module.map
)
-set(output_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}/include)
+set(output_base_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang)
+set(output_dir ${output_base_dir}/${CLANG_VERSION}/include)
+set(output_alias_dir ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION_MAJOR}.${CLANG_VERSION_MINOR})
# Generate arm_neon.h
clang_tablegen(arm_neon.h -gen-arm-neon
@@ -71,10 +73,23 @@ add_custom_command(OUTPUT ${output_dir}/arm_neon.h
COMMENT "Copying clang's arm_neon.h...")
list(APPEND out_files ${output_dir}/arm_neon.h)
-add_custom_target(clang-headers ALL DEPENDS ${out_files})
+if (NOT WIN32)
+ add_custom_command(OUTPUT ${output_alias_dir}
+ DEPENDS ${src}
+ COMMAND ln -sf ${CLANG_VERSION} ${output_alias_dir}
+ COMMENT "Creating alias from ${CLANG_VERSION} to ${output_alias_dir}")
+endif ()
+
+add_custom_target(clang-headers ALL DEPENDS ${out_files} ${output_alias_dir})
set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
install(
FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
- DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
+ DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include
+)
+
+install(
+ DIRECTORY ${output_alias_dir}
+ DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/
+)
diff --git a/lib/Headers/Makefile b/lib/Headers/Makefile
index 42219c4..221bf3c 100644
--- a/lib/Headers/Makefile
+++ b/lib/Headers/Makefile
@@ -14,10 +14,15 @@ TABLEGEN_INC_FILES_COMMON = 1
include $(CLANG_LEVEL)/Makefile
-CLANG_VERSION := $(word 3,$(shell grep "CLANG_VERSION " \
- $(PROJ_OBJ_DIR)/$(CLANG_LEVEL)/include/clang/Basic/Version.inc))
+CLANG_VERSION_INC := $(PROJ_OBJ_DIR)/$(CLANG_LEVEL)/include/clang/Basic/Version.inc
-HeaderDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/lib/clang/$(CLANG_VERSION)/include
+CLANG_VERSION := $(word 3,$(shell grep "CLANG_VERSION " $(CLANG_VERSION_INC)))
+CLANG_VERSION_MAJOR := $(word 3,$(shell grep "CLANG_VERSION_MAJOR " $(CLANG_VERSION_INC)))
+CLANG_VERSION_MINOR := $(word 3,$(shell grep "CLANG_VERSION_MINOR " $(CLANG_VERSION_INC)))
+
+HeaderBaseDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/lib/clang/$(CLANG_VERSION)
+HeaderDir := $(HeaderBaseDir)/include
+HeaderAliasDir := $(PROJ_OBJ_ROOT)/$(BuildMode)/lib/clang/$(CLANG_VERSION_MAJOR).$(CLANG_VERSION_MINOR)
HEADERS := $(notdir $(wildcard $(PROJ_SRC_DIR)/*.h))
@@ -36,11 +41,16 @@ $(HeaderDir)/module.map: $(PROJ_SRC_DIR)/module.map $(HeaderDir)/.dir
$(Verb) cp $< $@
$(Echo) Copying $(notdir $<) to build dir
+$(HeaderAliasDir): $(OBJHEADERS)
+ $(VERB) $(AliasTool) $(HeaderBaseDir) $(HeaderAliasDir)
+ $(Echo) Creating alias from $(HeaderBaseDir) to $(HeaderAliasDir)
# Hook into the standard Makefile rules.
-all-local:: $(OBJHEADERS) $(HeaderDir)/module.map
+all-local:: $(OBJHEADERS) $(HeaderDir)/module.map $(HeaderAliasDir)
-PROJ_headers := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(CLANG_VERSION)/include
+PROJ_headers_base := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(CLANG_VERSION)
+PROJ_headers := $(PROJ_headers_base)/include
+PROJ_headers_alias := $(DESTDIR)$(PROJ_prefix)/lib/clang/$(CLANG_VERSION_MAJOR).$(CLANG_VERSION_MINOR)
INSTHEADERS := $(addprefix $(PROJ_headers)/, $(HEADERS))
INSTHEADERS += $(PROJ_headers)/arm_neon.h
@@ -48,6 +58,10 @@ INSTHEADERS += $(PROJ_headers)/arm_neon.h
$(PROJ_headers):
$(Verb) $(MKDIR) $@
+$(PROJ_headers_alias): $(PROJ_headers)
+ $(Verb) $(AliasTool) $(PROJ_headers_base) $(PROJ_headers_alias)
+ $(Echo) Creating alias from $(PROJ_headers_base) to $(PROJ_headers_alias)
+
$(INSTHEADERS): $(PROJ_headers)/%.h: $(HeaderDir)/%.h | $(PROJ_headers)
$(Verb) $(DataInstall) $< $(PROJ_headers)
$(Echo) Installing compiler include file: $(notdir $<)
@@ -56,8 +70,7 @@ $(PROJ_headers)/module.map: $(HeaderDir)/module.map | $(PROJ_headers)
$(Verb) $(DataInstall) $< $(PROJ_headers)
$(Echo) Installing compiler module map file: $(notdir $<)
-
-install-local:: $(INSTHEADERS) $(PROJ_headers)/module.map
+install-local:: $(INSTHEADERS) $(PROJ_headers)/module.map $(PROJ_headers_alias)
$(ObjDir)/arm_neon.h.inc.tmp : $(CLANG_LEVEL)/include/clang/Basic/arm_neon.td $(CLANG_TBLGEN) $(ObjDir)/.dir
$(Echo) "Building Clang arm_neon.h.inc with tblgen"
--
1.8.1.4
More information about the cfe-commits
mailing list