summaryrefslogtreecommitdiff
path: root/xnt/build/cc.py
diff options
context:
space:
mode:
Diffstat (limited to 'xnt/build/cc.py')
-rw-r--r--xnt/build/cc.py61
1 files changed, 34 insertions, 27 deletions
diff --git a/xnt/build/cc.py b/xnt/build/cc.py
index e4592ca..d1a78ac 100644
--- a/xnt/build/cc.py
+++ b/xnt/build/cc.py
@@ -1,4 +1,8 @@
#!/usr/bin/env python
+"""Common Compilers
+
+Definition of commonly used compilers
+"""
# Xnt -- A Wrapper Build Tool
# Copyright (C) 2012 Kenny Ballou
@@ -16,58 +20,61 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Common Compilers
-"""
-
import os
import logging
-import sys
from xnt.tasks import call
-logger = logging.getLogger(__name__)
+LOGGER = logging.getLogger(__name__)
-def gcc(src, flags=[]):
+def gcc(src, flags=None):
"""gcc compiler, non-named output file"""
return _gcc(src, flags)
-def gpp(src, flags=[]):
+def gpp(src, flags=None):
"""g++ compiler, non-named output file"""
return _gcc(src, flags, "g++")
-def gcc_o(src, o, flags=[]):
+def gcc_o(src, output, flags=None):
"""gcc compiler, with output file"""
- return _gcc_o(src, o, flags)
+ return _gcc_o(src, output, flags)
-def gpp_o(src, o, flags=[]):
+def gpp_o(src, output, flags=None):
"""g++ compiler, with output file"""
- return _gcc_o(src, o, flags, "g++")
+ return _gcc_o(src, output, flags, "g++")
-def javac(src, flags=[]):
+def javac(src, flags=None):
"""Javac: compile Java programs"""
- logger.info("Compiling %s", src)
- cmd = __generateCommand(src, flags, "javac")
+ LOGGER.info("Compiling %s", src)
+ cmd = __generate_command(src, flags, "javac")
return __compile(cmd)
-def _gcc(src, flags=[], compiler="gcc"):
- logger.info("Compiling %s", src)
- return __compile(__generateCommand(src, flags, compiler))
+def _gcc(src, flags=None, compiler="gcc"):
+ """Compile using gcc"""
+ LOGGER.info("Compiling %s", src)
+ return __compile(__generate_command(src, flags, compiler))
-def _gcc_o(src, o, flags=[], compiler="gcc"):
- logger.info("Compiling %s to %s", src, o)
- cmd = __generateCommand(src, flags, compiler)
+def _gcc_o(src, output, flags=None, compiler="gcc"):
+ """Compile with gcc specifying output file name"""
+ LOGGER.info("Compiling %s to %s", src, output)
+ cmd = __generate_command(src, flags, compiler)
cmd.append("-o")
- cmd.append(o)
+ cmd.append(output)
return __compile(cmd)
-def __generateCommand(src, flags=[], compiler="gcc"):
+def __generate_command(src, flags=None, compiler="gcc"):
+ """Generate cmd list for call"""
cmd = [compiler, src]
- for f in flags:
- cmd.append(f)
+ if flags:
+ for flag in flags:
+ cmd.append(flag)
return cmd
def __compile(cmd):
+ """Run Compile, using `xnt.tasks.call`"""
return call(cmd)
-def __is_newer(a, b):
- return os.path.getmtime(a) > os.path.getmtime(b)
+def __is_newer(file_a, file_b):
+ """Compare mmtimes of files
+ Return True if `file_a` is modified later than `file_b`
+ """
+ return os.path.getmtime(file_a) > os.path.getmtime(file_b)