@@ -110,38 +110,42 @@ def include_directive(self) -> str:
110110 header_file = self .source_dir / "api.h"
111111 return f'#include "{ header_file .as_posix ()} "'
112112
113- @property
114- def compiler_args (self ) -> list [str ]: # pragma: no cover
115- opsys = platform .system ().lower ()
116- arch = platform .machine ().lower ()
117-
118- if opsys not in ("windows" , "linux" , "darwin" ):
119- raise errors .UnsupportedPlatformError
120-
113+ def _windows_compiler_args (self ) -> list [str ]: # pragma: no cover
121114 extra_flags : list [str ] = []
122- unix_flags = [
115+ for flag in self .required_flags :
116+ extra_flags .append (f"/arch:{ flag .upper ()} " )
117+ return ["/O2" , "/MD" , "/nologo" , * extra_flags ]
118+
119+ def _linux_compiler_args (self ) -> list [str ]: # pragma: no cover
120+ arch = platform .machine ().lower ()
121+ extra_flags = [
123122 "-fdata-sections" , "-ffunction-sections" ,
124- "-O3" , "-flto" , "-std=c99"
123+ "-O3" , "-flto" , "-std=c99" , "-s"
125124 ]
126- if opsys == "windows" and arch in const .AMDArches :
125+ if arch in const .AMDArches :
127126 for flag in self .required_flags :
128- extra_flags .append (f"/arch:{ flag .upper ()} " )
129- return ["/O2" , "/MD" , "/nologo" , * extra_flags ]
127+ extra_flags .append (f"-m{ flag .lower ()} " )
128+ elif arch in const .ARMArches :
129+ march_flag = "-march=armv8.5-a"
130+ for flag in self .required_flags :
131+ march_flag += f"+{ flag .lower ()} "
132+ extra_flags .append (march_flag )
133+ return extra_flags
134+
135+ @staticmethod
136+ def _darwin_compiler_args () -> list [str ]: # pragma: no cover
137+ return ["-fdata-sections" , "-ffunction-sections" , "-O3" , "-flto" , "-std=c99" ]
138+
139+ @property
140+ def compiler_args (self ) -> list [str ]: # pragma: no cover
141+ opsys = platform .system ().lower ()
142+ if opsys == "windows" :
143+ return self ._windows_compiler_args ()
130144 elif opsys == "linux" :
131- extra_flags .append ("-s" )
132- if arch in const .AMDArches :
133- for flag in self .required_flags :
134- extra_flags .append (f"-m{ flag .lower ()} " )
135- elif arch in const .ARMArches :
136- march_flag = "-march=armv8.5-a"
137- for flag in self .required_flags :
138- march_flag += f"+{ flag .lower ()} "
139- extra_flags .append (march_flag )
145+ return self ._linux_compiler_args ()
140146 elif opsys == "darwin" :
141- pass
142-
143- unix_flags .extend (extra_flags )
144- return unix_flags
147+ return self ._darwin_compiler_args ()
148+ return list ()
145149
146150 @property
147151 def linker_args (self ) -> list [str ]: # pragma: no cover
0 commit comments