From a9388b73b1aaa709e3d10ca84eef600f1f36c283 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Thu, 22 May 2014 23:05:22 +0100 Subject: [PATCH] build: Use CURLX_* file lists for Visual Studio curl tool project generation --- Makefile.am | 34 ++++++++++++++++++++ projects/README | 1 - projects/Windows/VC10/src/curlsrc.tmpl | 12 ++----- projects/Windows/VC11/src/curlsrc.tmpl | 12 ++----- projects/Windows/VC12/src/curlsrc.tmpl | 12 ++----- projects/Windows/VC6/src/curlsrc.tmpl | 42 ++----------------------- projects/Windows/VC7.1/src/curlsrc.tmpl | 32 ++----------------- projects/Windows/VC7/src/curlsrc.tmpl | 32 ++----------------- projects/Windows/VC8/src/curlsrc.tmpl | 42 ++----------------------- projects/Windows/VC9/src/curlsrc.tmpl | 42 ++----------------------- projects/generate.bat | 16 +++++++++- 11 files changed, 65 insertions(+), 212 deletions(-) diff --git a/Makefile.am b/Makefile.am index 6a4b15ad9..18cb7d921 100644 --- a/Makefile.am +++ b/Makefile.am @@ -275,6 +275,8 @@ vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \ win32_src_srcs='$(CURL_CFILES)'; \ win32_src_hdrs='$(CURL_HFILES)'; \ win32_src_rc='$(CURL_RCFILES)'; \ + win32_src_x_srcs='$(CURLX_CFILES)'; \ + win32_src_x_hdrs='$(CURLX_HFILES) ../lib/config-win32.h'; \ \ sorted_lib_srcs=`for file in $$win32_lib_srcs; do echo $$file; done | sort`; \ sorted_lib_hdrs=`for file in $$win32_lib_hdrs; do echo $$file; done | sort`; \ @@ -282,6 +284,8 @@ vc-ide: $(VC6_LIBDSP_DEPS) $(VC6_SRCDSP_DEPS) $(VC7_LIBVCPROJ_DEPS) \ sorted_lib_vtls_hdrs=`for file in $$win32_lib_vtls_hdrs; do echo $$file; done | sort`; \ sorted_src_srcs=`for file in $$win32_src_srcs; do echo $$file; done | sort`; \ sorted_src_hdrs=`for file in $$win32_src_hdrs; do echo $$file; done | sort`; \ + sorted_src_x_srcs=`for file in $$win32_src_x_srcs; do echo $$file; done | sort`; \ + sorted_src_x_hdrs=`for file in $$win32_src_x_hdrs; do echo $$file; done | sort`; \ \ awk_code='\ function gen_element(type, dir, file)\ @@ -363,6 +367,20 @@ function gen_element(type, dir, file)\ split(src_rc, arr);\ for(val in arr) gen_element(proj_type, "src", arr[val]);\ }\ + else if($$0 == "CURL_SRC_X_C_FILES") {\ + split(src_x_srcs, arr);\ + for(val in arr) {\ + sub(/..\/lib\//, "", arr[val]);\ + gen_element(proj_type, "lib", arr[val]);\ + }\ + }\ + else if($$0 == "CURL_SRC_X_H_FILES") {\ + split(src_x_hdrs, arr);\ + for(val in arr) {\ + sub(/..\/lib\//, "", arr[val]);\ + gen_element(proj_type, "lib", arr[val]);\ + }\ + }\ else\ printf("%s\r\n", $$0);\ }';\ @@ -381,6 +399,8 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC6_SRCTMPL) > $(VC6_SRCDSP) || { exit 1; }; \ \ echo "generating '$(VC7_LIBVCPROJ)'"; \ @@ -397,6 +417,8 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC7_SRCTMPL) > $(VC7_SRCVCPROJ) || { exit 1; }; \ \ echo "generating '$(VC71_LIBVCPROJ)'"; \ @@ -413,6 +435,8 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC71_SRCTMPL) > $(VC71_SRCVCPROJ) || { exit 1; }; \ \ echo "generating '$(VC8_LIBVCPROJ)'"; \ @@ -429,6 +453,8 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC8_SRCTMPL) > $(VC8_SRCVCPROJ) || { exit 1; }; \ \ echo "generating '$(VC9_LIBVCPROJ)'"; \ @@ -445,6 +471,8 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC9_SRCTMPL) > $(VC9_SRCVCPROJ) || { exit 1; }; \ \ echo "generating '$(VC10_LIBVCXPROJ)'"; \ @@ -461,6 +489,8 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC10_SRCTMPL) > $(VC10_SRCVCXPROJ) || { exit 1; }; \ \ echo "generating '$(VC11_LIBVCXPROJ)'"; \ @@ -477,6 +507,8 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC11_SRCTMPL) > $(VC11_SRCVCXPROJ) || { exit 1; }; \ \ echo "generating '$(VC12_LIBVCXPROJ)'"; \ @@ -493,4 +525,6 @@ function gen_element(type, dir, file)\ -v src_srcs="$$sorted_src_srcs" \ -v src_hdrs="$$sorted_src_hdrs" \ -v src_rc="$$win32_src_rc" \ + -v src_x_srcs="$$sorted_src_x_srcs" \ + -v src_x_hdrs="$$sorted_src_x_hdrs" \ "$$awk_code" $(srcdir)/$(VC12_SRCTMPL) > $(VC12_SRCVCXPROJ) || { exit 1; };) diff --git a/projects/README b/projects/README index 95a248aff..2701f26e3 100644 --- a/projects/README +++ b/projects/README @@ -98,7 +98,6 @@ TODO * Support WinIDN * Use of static runtime libraries * Generate *.vcxproj.filters files for VC10, VC11 and VC12 - * Use CURLX_* definitions for curl tool project generation * Support for other development IDEs Any additional help would be appreciated ;-) \ No newline at end of file diff --git a/projects/Windows/VC10/src/curlsrc.tmpl b/projects/Windows/VC10/src/curlsrc.tmpl index 1e8e4c2eb..0731630d1 100644 --- a/projects/Windows/VC10/src/curlsrc.tmpl +++ b/projects/Windows/VC10/src/curlsrc.tmpl @@ -2435,19 +2435,11 @@ - - - - +CURL_SRC_X_C_FILES CURL_SRC_C_FILES - - - - - - +CURL_SRC_X_H_FILES CURL_SRC_H_FILES diff --git a/projects/Windows/VC11/src/curlsrc.tmpl b/projects/Windows/VC11/src/curlsrc.tmpl index 6e6a56572..a4a835555 100644 --- a/projects/Windows/VC11/src/curlsrc.tmpl +++ b/projects/Windows/VC11/src/curlsrc.tmpl @@ -2475,19 +2475,11 @@ - - - - +CURL_SRC_X_C_FILES CURL_SRC_C_FILES - - - - - - +CURL_SRC_X_H_FILES CURL_SRC_H_FILES diff --git a/projects/Windows/VC12/src/curlsrc.tmpl b/projects/Windows/VC12/src/curlsrc.tmpl index 8949f5ea1..719cfa77e 100644 --- a/projects/Windows/VC12/src/curlsrc.tmpl +++ b/projects/Windows/VC12/src/curlsrc.tmpl @@ -2475,19 +2475,11 @@ - - - - +CURL_SRC_X_C_FILES CURL_SRC_C_FILES - - - - - - +CURL_SRC_X_H_FILES CURL_SRC_H_FILES diff --git a/projects/Windows/VC6/src/curlsrc.tmpl b/projects/Windows/VC6/src/curlsrc.tmpl index e2f1e222b..874136c56 100644 --- a/projects/Windows/VC6/src/curlsrc.tmpl +++ b/projects/Windows/VC6/src/curlsrc.tmpl @@ -569,51 +569,13 @@ LINK32=link.exe # Begin Group "Source Files" # PROP Default_Filter "" -# Begin Source File - -SOURCE=..\..\..\..\lib\nonblock.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\rawstr.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\strtoofft.c -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\warnless.c -# End Source File +CURL_SRC_X_C_FILES CURL_SRC_C_FILES # End Group # Begin Group "Header Files" # PROP Default_Filter "" -# Begin Source File - -SOURCE="..\..\..\..\lib\config-win32.h" -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\curl_setup.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\nonblock.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\rawstr.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\strtoofft.h -# End Source File -# Begin Source File - -SOURCE=..\..\..\..\lib\warnless.h -# End Source File +CURL_SRC_X_H_FILES CURL_SRC_H_FILES # End Group # Begin Group "Resource Files" diff --git a/projects/Windows/VC7.1/src/curlsrc.tmpl b/projects/Windows/VC7.1/src/curlsrc.tmpl index 98d0c8396..5482eff4c 100644 --- a/projects/Windows/VC7.1/src/curlsrc.tmpl +++ b/projects/Windows/VC7.1/src/curlsrc.tmpl @@ -1217,41 +1217,13 @@ - - - - - - - - +CURL_SRC_X_C_FILES CURL_SRC_C_FILES - - - - - - - - - - - - +CURL_SRC_X_H_FILES CURL_SRC_H_FILES - - - - - - - - +CURL_SRC_X_C_FILES CURL_SRC_C_FILES - - - - - - - - - - - - +CURL_SRC_X_H_FILES CURL_SRC_H_FILES - - - - - - - - +CURL_SRC_X_C_FILES CURL_SRC_C_FILES - - - - - - - - - - - - +CURL_SRC_X_H_FILES CURL_SRC_H_FILES - - - - - - - - +CURL_SRC_X_C_FILES CURL_SRC_C_FILES - - - - - - - - - - - - +CURL_SRC_X_H_FILES CURL_SRC_H_FILES +rem * Copyright (C) 2014, Steve Holme, . rem * rem * This software is licensed as described in the file COPYING, which rem * you should have received as part of this distribution. The terms @@ -92,6 +92,20 @@ rem for /f "delims=" %%h in ('dir /b ..\src\*.h') do call :element %1 src "%%h" %3 ) else if "!var!" == "CURL_SRC_RC_FILES" ( for /f "delims=" %%r in ('dir /b ..\src\*.rc') do call :element %1 src "%%r" %3 + ) else if "!var!" == "CURL_SRC_X_C_FILES" ( + call :element %1 lib "strtoofft.c" %3 + call :element %1 lib "strdup.c" %3 + call :element %1 lib "rawstr.c" %3 + call :element %1 lib "nonblock.c" %3 + call :element %1 lib "warnless.c" %3 + ) else if "!var!" == "CURL_SRC_X_H_FILES" ( + call :element %1 lib "config-win32.h" %3 + call :element %1 lib "curl_setup.h" %3 + call :element %1 lib "strtoofft.h" %3 + call :element %1 lib "strdup.h" %3 + call :element %1 lib "rawstr.h" %3 + call :element %1 lib "nonblock.h" %3 + call :element %1 lib "warnless.h" %3 ) else if "!var!" == "CURL_LIB_C_FILES" ( for /f "delims=" %%c in ('dir /b ..\lib\*.c') do call :element %1 lib "%%c" %3 ) else if "!var!" == "CURL_LIB_H_FILES" ( -- 2.34.1