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
564c7a57
Commit
564c7a57
authored
Jan 04, 2011
by
André Hentschel
Committed by
Alexandre Julliard
Jan 05, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winemaker: Add def file support.
parent
5fd834fc
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
6 deletions
+26
-6
winemaker
tools/winemaker
+26
-6
No files found.
tools/winemaker
View file @
564c7a57
...
...
@@ -3,7 +3,7 @@ use strict;
# Copyright 2000-2004 Francois Gouget for CodeWeavers
# Copyright 2004 Dimitrie O. Paun
# Copyright 2009 André Hentschel
# Copyright 2009
-2011
André Hentschel
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
...
...
@@ -20,7 +20,7 @@ use strict;
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
#
my
$version
=
"0.7.
5
"
;
my
$version
=
"0.7.
6
"
;
use
Cwd
;
use
File::
Basename
;
...
...
@@ -266,6 +266,10 @@ my $TF_NODLLS=16;
my
$TF_NOMSVCRT
=
32
;
##
# This target has a def file (only use it with TT_DLL)
my
$TF_HASDEF
=
64
;
##
# Initialize a target:
# - set the target type to TT_SETTINGS, i.e. no real target will
# be generated.
...
...
@@ -800,6 +804,8 @@ sub source_scan_project_file($$$)
}
}
elsif
(
$sfilet
=~
/\.rc$/i
)
{
push
@sources_rc
,
$sfilet
;
}
elsif
(
$sfilet
=~
/\.def$/i
)
{
@$project_settings
[
$T_FLAGS
]
|=
$TF_HASDEF
;
}
elsif
(
$sfilet
=~
/\.(h|hxx|hpp|inl|rc2|dlg)$/i
)
{
push
@sources_misc
,
$sfilet
;
if
(
$sfilet
=~
/^stdafx.h$/i
&&
!
(
@$project_settings
[
$T_FLAGS
]
&
$TF_NOMFC
))
{
...
...
@@ -889,6 +895,8 @@ sub source_scan_project_file($$$)
}
}
elsif
(
$sfilet
=~
/\.rc$/i
)
{
push
@sources_rc
,
$sfilet
;
}
elsif
(
$sfilet
=~
/\.def$/i
)
{
@$project_settings
[
$T_FLAGS
]
|=
$TF_HASDEF
;
}
elsif
(
$sfilet
=~
/\.(h|hxx|hpp|inl|rc2|dlg)$/i
)
{
push
@sources_misc
,
$sfilet
;
if
(
$sfilet
=~
/^stdafx.h$/i
&&
!
(
@$project_settings
[
$T_FLAGS
]
&
$TF_NOMFC
))
{
...
...
@@ -1012,8 +1020,12 @@ sub source_scan_project_file($$$)
push
@local_depends
,
"$prj_name.so"
;
push
@local_dlls
,
$prj_name
;
my
$canon
=
canonize
(
$prj_name
);
if
(
@$project_settings
[
$T_FLAGS
]
&
$TF_HASDEF
)
{
push
@
{
@$target
[
$T_LDFLAGS
]},(
"-shared"
,
"\$(${canon}_MODULE:.dll=.def)"
);
}
else
{
push
@
{
@$target
[
$T_LDFLAGS
]},(
"-shared"
,
"\$(${canon}_MODULE:.dll=.spec)"
);
}
}
@$target
[
$T_NAME
]
=
$prj_name
;
@$target
[
$T_FLAGS
]
|=
@$project_settings
[
$T_FLAGS
];
...
...
@@ -1295,6 +1307,8 @@ sub source_scan_directory($$$$)
}
}
elsif
(
$dentry
=~
/\.rc$/i
)
{
push
@sources_rc
,
"$dentry"
;
}
elsif
(
$dentry
=~
/\.def$/i
)
{
@$project_settings
[
$T_FLAGS
]
|=
$TF_HASDEF
;
}
elsif
(
$dentry
=~
/\.(h|hxx|hpp|inl|rc2|dlg)$/i
)
{
$has_headers
=
1
;
push
@sources_misc
,
"$dentry"
;
...
...
@@ -1507,7 +1521,11 @@ sub source_scan_directory($$$$)
push
@local_depends
,
"$target_name.so"
;
push
@local_dlls
,
$target_name
;
my
$canon
=
canonize
(
$target_name
);
if
(
@$project_settings
[
$T_FLAGS
]
&
$TF_HASDEF
)
{
push
@
{
@$target
[
$T_LDFLAGS
]},(
"-shared"
,
"\$(${canon}_MODULE:.dll=.def)"
);
}
else
{
push
@
{
@$target
[
$T_LDFLAGS
]},(
"-shared"
,
"\$(${canon}_MODULE:.dll=.spec)"
);
}
}
else
{
@$target
[
$T_TYPE
]
=
$opt_target_type
;
push
@exe_list
,
$target
;
...
...
@@ -1736,7 +1754,7 @@ sub fix_file_and_directory_names($)
`head -n 1 "$dirname/$dentry"`
=~
/Generated by Winemaker/
);
# Leave non-source files alone
next
if
(
$new_name
!~
/(^makefile|\.(c|cpp|h|rc))$/i
);
next
if
(
$new_name
!~
/(^makefile|\.(c|cpp|h|rc
|spec|def
))$/i
);
# Only all lowercase extensions are supported (because of
# rules like '.c.o:').
...
...
@@ -2480,7 +2498,9 @@ sub generate_project_files($)
my
$canon
=
canonize
(
"@$target[$T_NAME]"
);
$canon
=~
s/_so$//
;
if
(
@$target
[
$T_TYPE
]
==
$TT_DLL
)
{
if
(
@$target
[
$T_TYPE
]
==
$TT_DLL
&&
(
@$project_settings
[
$T_FLAGS
]
&
$TF_HASDEF
))
{
print
FILEO
"\$(${canon}_MODULE).so: \$(${canon}_OBJS) \$(${canon}_MODULE:.dll=.def)\n"
;
}
elsif
(
@$target
[
$T_TYPE
]
==
$TT_DLL
)
{
print
FILEO
"\$(${canon}_MODULE).so: \$(${canon}_OBJS) \$(${canon}_MODULE:.dll=.spec)\n"
;
}
else
{
print
FILEO
"\$(${canon}_MODULE).so: \$(${canon}_OBJS)\n"
;
...
...
@@ -2553,9 +2573,9 @@ $opt_no_banner=0;
sub
print_banner
()
{
print
"Winemaker $version\n"
;
print
"Copyright 2000 Francois Gouget <fgouget\@codeweavers.com> for CodeWeavers\n"
;
print
"Copyright 2000
-2004
Francois Gouget <fgouget\@codeweavers.com> for CodeWeavers\n"
;
print
"Copyright 2004 Dimitrie O. Paun\n"
;
print
"Copyright 2009 André Hentschel\n"
;
print
"Copyright 2009
-2011
André Hentschel\n"
;
}
sub
usage
()
...
...
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