build: Use CURLX_* file lists for Visual Studio curl tool project generation

This commit is contained in:
Steve Holme 2014-05-22 23:05:22 +01:00
parent a7999da39e
commit a9388b73b1
11 changed files with 65 additions and 212 deletions

View File

@ -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; };)

View File

@ -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 ;-)

View File

@ -2435,19 +2435,11 @@
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\rawstr.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
CURL_SRC_X_C_FILES
CURL_SRC_C_FILES
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\rawstr.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
CURL_SRC_X_H_FILES
CURL_SRC_H_FILES
</ItemGroup>
<ItemGroup>

View File

@ -2475,19 +2475,11 @@
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\rawstr.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
CURL_SRC_X_C_FILES
CURL_SRC_C_FILES
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\rawstr.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
CURL_SRC_X_H_FILES
CURL_SRC_H_FILES
</ItemGroup>
<ItemGroup>

View File

@ -2475,19 +2475,11 @@
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\lib\nonblock.c" />
<ClCompile Include="..\..\..\..\lib\rawstr.c" />
<ClCompile Include="..\..\..\..\lib\strtoofft.c" />
<ClCompile Include="..\..\..\..\lib\warnless.c" />
CURL_SRC_X_C_FILES
CURL_SRC_C_FILES
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\lib\config-win32.h" />
<ClInclude Include="..\..\..\..\lib\curl_setup.h" />
<ClInclude Include="..\..\..\..\lib\nonblock.h" />
<ClInclude Include="..\..\..\..\lib\rawstr.h" />
<ClInclude Include="..\..\..\..\lib\strtoofft.h" />
<ClInclude Include="..\..\..\..\lib\warnless.h" />
CURL_SRC_X_H_FILES
CURL_SRC_H_FILES
</ItemGroup>
<ItemGroup>

View File

@ -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"

View File

@ -1217,41 +1217,13 @@
<Filter
Name="Source Files"
Filter="">
<File
RelativePath="..\..\..\..\lib\nonblock.c">
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.c">
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.c">
</File>
<File
RelativePath="..\..\..\..\lib\warnless.c">
</File>
CURL_SRC_X_C_FILES
CURL_SRC_C_FILES
</Filter>
<Filter
Name="Header Files"
Filter="">
<File
RelativePath="..\..\..\..\lib\config-win32.h">
</File>
<File
RelativePath="..\..\..\..\lib\curl_setup.h">
</File>
<File
RelativePath="..\..\..\..\lib\nonblock.h">
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.h">
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.h">
</File>
<File
RelativePath="..\..\..\..\lib\warnless.h">
</File>
CURL_SRC_X_H_FILES
CURL_SRC_H_FILES
</Filter>
<Filter

View File

@ -1095,41 +1095,13 @@
<Filter
Name="Source Files"
Filter="">
<File
RelativePath="..\..\..\..\lib\nonblock.c">
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.c">
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.c">
</File>
<File
RelativePath="..\..\..\..\lib\warnless.c">
</File>
CURL_SRC_X_C_FILES
CURL_SRC_C_FILES
</Filter>
<Filter
Name="Header Files"
Filter="">
<File
RelativePath="..\..\..\..\lib\config-win32.h">
</File>
<File
RelativePath="..\..\..\..\lib\curl_setup.h">
</File>
<File
RelativePath="..\..\..\..\lib\nonblock.h">
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.h">
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.h">
</File>
<File
RelativePath="..\..\..\..\lib\warnless.h">
</File>
CURL_SRC_X_H_FILES
CURL_SRC_H_FILES
</Filter>
<Filter

View File

@ -3764,51 +3764,13 @@
<Filter
Name="Source Files"
>
<File
RelativePath="..\..\..\..\lib\nonblock.c"
>
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.c"
>
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.c"
>
</File>
<File
RelativePath="..\..\..\..\lib\warnless.c"
>
</File>
CURL_SRC_X_C_FILES
CURL_SRC_C_FILES
</Filter>
<Filter
Name="Header Files"
>
<File
RelativePath="..\..\..\..\lib\config-win32.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\curl_setup.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\nonblock.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\warnless.h"
>
</File>
CURL_SRC_X_H_FILES
CURL_SRC_H_FILES
</Filter>
<Filter

View File

@ -3725,51 +3725,13 @@
<Filter
Name="Source Files"
>
<File
RelativePath="..\..\..\..\lib\nonblock.c"
>
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.c"
>
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.c"
>
</File>
<File
RelativePath="..\..\..\..\lib\warnless.c"
>
</File>
CURL_SRC_X_C_FILES
CURL_SRC_C_FILES
</Filter>
<Filter
Name="Header Files"
>
<File
RelativePath="..\..\..\..\lib\config-win32.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\curl_setup.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\nonblock.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\rawstr.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\strtoofft.h"
>
</File>
<File
RelativePath="..\..\..\..\lib\warnless.h"
>
</File>
CURL_SRC_X_H_FILES
CURL_SRC_H_FILES
</Filter>
<Filter

View File

@ -6,7 +6,7 @@ rem * / __| | | | |_) | |
rem * | (__| |_| | _ <| |___
rem * \___|\___/|_| \_\_____|
rem *
rem * Copyright (C) 2014, Steve Holme, <steve_holme@hotmail.com>
rem * Copyright (C) 2014, Steve Holme, <steve_holme@hotmail.com>.
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" (