Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
9898d437
Commit
9898d437
authored
Oct 17, 2008
by
Rob Shearman
Committed by
Alexandre Julliard
Oct 17, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcmaker: Generate rules for IDL_C_SRCS, IDL_S_SRCS, IDL_P_SRCS and IDL_TLB_SRCS.
parent
4a6b856f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
89 additions
and
26 deletions
+89
-26
msvcmaker
tools/winapi/msvcmaker
+89
-26
No files found.
tools/winapi/msvcmaker
View file @
9898d437
...
...
@@ -271,6 +271,26 @@ MAKEFILE_IN: foreach my $makefile_in_file (@makefile_in_files) {
$idl_h_files
=
[
sort
(
@
{
$vars
{
IDL_H_SRCS
}})];
}
my
$idl_c_files
=
[]
;
if
(
exists
(
$vars
{
IDL_C_SRCS
}))
{
$idl_c_files
=
[
sort
(
@
{
$vars
{
IDL_C_SRCS
}})];
}
my
$idl_s_files
=
[]
;
if
(
exists
(
$vars
{
IDL_S_SRCS
}))
{
$idl_s_files
=
[
sort
(
@
{
$vars
{
IDL_S_SRCS
}})];
}
my
$idl_p_files
=
[]
;
if
(
exists
(
$vars
{
IDL_P_SRCS
}))
{
$idl_p_files
=
[
sort
(
@
{
$vars
{
IDL_P_SRCS
}})];
}
my
$idl_tlb_files
=
[]
;
if
(
exists
(
$vars
{
IDL_TLB_SRCS
}))
{
$idl_tlb_files
=
[
sort
(
@
{
$vars
{
IDL_TLB_SRCS
}})];
}
my
$extradefs
;
if
(
exists
(
$vars
{
EXTRADEFS
}))
{
$extradefs
=
$vars
{
EXTRADEFS
};
...
...
@@ -321,6 +341,10 @@ MAKEFILE_IN: foreach my $makefile_in_file (@makefile_in_files) {
$modules
{
$module
}{
resource_files
}
=
$local_resource_files
;
$modules
{
$module
}{
imports
}
=
[]
;
$modules
{
$module
}{
idl_h_files
}
=
$local_idl_h_files
;
$modules
{
$module
}{
idl_c_files
}
=
[]
;
$modules
{
$module
}{
idl_s_files
}
=
[]
;
$modules
{
$module
}{
idl_p_files
}
=
[]
;
$modules
{
$module
}{
idl_tlb_files
}
=
[]
;
$modules
{
$module
}{
extradefs
}
=
$extradefs
if
$extradefs
;
}
}
...
...
@@ -336,6 +360,10 @@ MAKEFILE_IN: foreach my $makefile_in_file (@makefile_in_files) {
$modules
{
$module
}{
resource_files
}
=
$resource_files
;
$modules
{
$module
}{
imports
}
=
[
@imports
];
$modules
{
$module
}{
idl_h_files
}
=
$idl_h_files
;
$modules
{
$module
}{
idl_c_files
}
=
$idl_c_files
;
$modules
{
$module
}{
idl_s_files
}
=
$idl_s_files
;
$modules
{
$module
}{
idl_p_files
}
=
$idl_p_files
;
$modules
{
$module
}{
idl_tlb_files
}
=
$idl_tlb_files
;
$modules
{
$module
}{
extradefs
}
=
$extradefs
if
$extradefs
;
}
...
...
@@ -412,6 +440,10 @@ foreach my $dsp_file (keys(%wine_test_dsp_files)) {
$modules
{
$module
}{
resource_files
}
=
$resource_files
;
$modules
{
$module
}{
imports
}
=
[
@imports
];
$modules
{
$module
}{
idl_h_files
}
=
[]
;
$modules
{
$module
}{
idl_c_files
}
=
[]
;
$modules
{
$module
}{
idl_s_files
}
=
[]
;
$modules
{
$module
}{
idl_p_files
}
=
[]
;
$modules
{
$module
}{
idl_tlb_files
}
=
[]
;
$modules
{
$module
}{
tests
}
=
[
@tests
];
}
...
...
@@ -440,6 +472,52 @@ foreach my $module (@modules) {
replace_file
(
"$wine_dir/$dsp_file"
,
\&
_generate_dsp
,
$module
);
}
sub
output_dsp_idl_rules
($$$)
{
my
$wine_include_dir
=
shift
;
my
$ext
=
shift
;
my
@idl_src_files
=
@
{(
shift
)};
foreach
my
$idl_src_file
(
@idl_src_files
)
{
$idl_src_file
=~
s%/%\\%g
;
if
(
$idl_src_file
!~
/^\./
)
{
$idl_src_file
=
".\\$idl_src_file"
;
}
print
OUT
"# Begin Source File\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"SOURCE=$idl_src_file\r\n"
;
my
$basename
=
$idl_src_file
;
$basename
=~
s/\.idl$//
;
print
OUT
"# PROP Ignore_Default_Tool 1\r\n"
;
print
OUT
"# Begin Custom Build\r\n"
;
print
OUT
"InputPath=$idl_src_file\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"BuildCmds= \\\r\n"
;
print
OUT
"\tmidl /nologo /I $wine_include_dir $idl_src_file "
;
if
(
$ext
eq
".h"
)
{
print
OUT
"/client none /server none /notlb /h "
;
}
elsif
(
$ext
eq
"_c.c"
)
{
print
OUT
"/server none /notlb /cstub "
;
}
elsif
(
$ext
eq
"_s.c"
)
{
print
OUT
"/client none /notlb /sstub "
;
}
elsif
(
$ext
eq
"_p.c"
)
{
print
OUT
"/client none /server none /notlb /proxy "
;
}
elsif
(
$ext
eq
".tlb"
)
{
print
OUT
"/client none /server none /tlb "
;
}
print
OUT
"$basename$ext\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"\"$basename$ext\" : \$(SOURCE) \"\$(INTDIR)\" \"\$(OUTDIR)\"\r\n"
;
print
OUT
" \$(BuildCmds)\r\n"
;
print
OUT
"# End Custom Build\r\n"
;
print
OUT
"# End Source File\r\n"
;
}
}
sub
_generate_dsp
($$)
{
local
*
OUT
=
shift
;
...
...
@@ -478,6 +556,10 @@ sub _generate_dsp($$) {
my
@header_files
=
@
{
$modules
{
$module
}{
header_files
}};
my
@resource_files
=
@
{
$modules
{
$module
}{
resource_files
}};
my
@idl_h_files
=
@
{
$modules
{
$module
}{
idl_h_files
}};
my
@idl_c_files
=
@
{
$modules
{
$module
}{
idl_c_files
}};
my
@idl_s_files
=
@
{
$modules
{
$module
}{
idl_s_files
}};
my
@idl_p_files
=
@
{
$modules
{
$module
}{
idl_p_files
}};
my
@idl_tlb_files
=
@
{
$modules
{
$module
}{
idl_tlb_files
}};
if
(
$project
!~
/^wine(?:build|runtests|test)?$/
&&
$project
!~
/^(?:gdi32)_.+?$/
&&
...
...
@@ -908,32 +990,13 @@ sub _generate_dsp($$) {
print
OUT
"# End Source File\r\n"
;
}
foreach
my
$idl_h_file
(
@idl_h_files
)
{
$idl_h_file
=~
s%/%\\%g
;
if
(
$idl_h_file
!~
/^\./
)
{
$idl_h_file
=
".\\$idl_h_file"
;
}
print
OUT
"# Begin Source File\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"SOURCE=$idl_h_file\r\n"
;
my
$basename
=
$idl_h_file
;
$basename
=~
s/\.idl$//
;
print
OUT
"# PROP Ignore_Default_Tool 1\r\n"
;
print
OUT
"# Begin Custom Build\r\n"
;
print
OUT
"InputPath=$idl_h_file\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"BuildCmds= \\\r\n"
;
print
OUT
"\tmidl /nologo /I $wine_include_dir /client none /server none /notlb $idl_h_file /h $basename.h\r\n"
;
print
OUT
"\r\n"
;
print
OUT
"\"$basename.h\" : \$(SOURCE) \"\$(INTDIR)\" \"\$(OUTDIR)\"\r\n"
;
print
OUT
" \$(BuildCmds)\r\n"
;
print
OUT
"# End Custom Build\r\n"
;
print
OUT
"# End Source File\r\n"
;
output_dsp_idl_rules
$wine_include_dir
,
".h"
,
\
@idl_h_files
;
output_dsp_idl_rules
$wine_include_dir
,
"_c.c"
,
\
@idl_c_files
;
output_dsp_idl_rules
$wine_include_dir
,
"_s.c"
,
\
@idl_s_files
;
output_dsp_idl_rules
$wine_include_dir
,
"_p.c"
,
\
@idl_p_files
;
# Hack - stdole2.idl cannot be compiled with midl
if
(
$project
ne
"include"
)
{
output_dsp_idl_rules
$wine_include_dir
,
".tlb"
,
\
@idl_tlb_files
;
}
print
OUT
"# End Group\r\n"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment