def make_check(path, module, module_path): name = os.path.splitext(os.path.split(path)[1])[0] cppsource = open(path, "r").read() macro = "IMP_COMPILER_%s" % name.upper() output = check_template % {"macro": macro, "cppsource": tools.quote(cppsource), "module": module, "name": name} filename = os.path.join(module_path, "CMakeModules", "Check" + name + ".cmake") tools.rewrite(filename, output) defr = "%s=${%s}" % (macro, macro) return filename, defr
def make_check(path, module, module_path): name = os.path.splitext(os.path.split(path)[1])[0] cppsource = open(path, "r").read() macro = "IMP_COMPILER_%s" % name.upper() filename = os.path.join(module_path, "CMakeModules", "Check" + name + ".cmake") check_template.write(filename, {"macro": macro, "cppsource": tools.quote(cppsource), "module": module, "name": name}) defr = "%s=${%s}" % (macro, macro) return filename, defr
def make_dependency_check(descr_path, module, module_path): descr = tools.get_dependency_description(descr_path) name = os.path.splitext(os.path.split(descr_path)[1])[0] if len(descr["cmake"]) > 0: ret = descr_path[0 : -len("description")] + "cmake" return ret descr["pkgname"] = name descr["PKGNAME"] = name.upper() filename = os.path.join(module_path, "CMakeModules", "Find" + name + ".cmake") if descr["python_module"] != "": # don't bother checking python deps as they aren't needed for compilation # and it makes cross compilation easier return None else: descr["includes"] = "\n".join(["#include <%s>" % h for h in descr["headers"]]) descr["headers"] = ";".join(descr["headers"]) descr["libraries"] = ";".join(descr["libraries"]) descr["body"] = tools.quote(descr["body"]) if len(descr["cmake"]) > 0: descr["path"] = os.path.splitext(descr_path)[0] descr["on_failure"] = ( """set(%(PKGNAME)s_INTERNAL 1 CACHE INTERNAL "" FORCE) %(cmake)s """ % descr ) descr["on_setup"] = ( """if(DEFINED %(PKGNAME)s_INTERNAL) %(cmake)s endif(DEFINED %(PKGNAME)s_INTERNAL)""" % descr ) else: descr["on_failure"] = ( """message("%s not found")\nfile(WRITE "${CMAKE_BINARY_DIR}/data/build_info/%s" "ok=False")""" % (name, name) ) descr["on_setup"] = "" output = dep_template % descr tools.rewrite(filename, output) return filename
def make_dependency_check(descr_path, module, module_path): descr = tools.get_dependency_description(descr_path) name = os.path.splitext(os.path.split(descr_path)[1])[0] if len(descr["cmake"]) > 0: ret = descr_path[0:-len("description")] + "cmake" return ret descr["pkgname"] = name descr["PKGNAME"] = name.upper() filename = os.path.join(module_path, "CMakeModules", "Find" + name + ".cmake") if descr["python_module"] != "": # don't bother checking python deps as they aren't needed for compilation # and it makes cross compilation easier return None else: descr["includes"] = "\n".join( ["#include <%s>" % h for h in descr["headers"]]) descr["headers"] = ";".join(descr["headers"]) descr["libraries"] = ";".join(descr["libraries"]) descr["body"] = tools.quote(descr["body"]) if len(descr["cmake"]) > 0: descr["path"] = os.path.splitext(descr_path)[0] descr[ "on_failure"] = """set(%(PKGNAME)s_INTERNAL 1 CACHE INTERNAL "" FORCE) %(cmake)s """ % descr descr["on_setup"] = """if(DEFINED %(PKGNAME)s_INTERNAL) %(cmake)s endif(DEFINED %(PKGNAME)s_INTERNAL)""" % descr else: descr[ "on_failure"] = """message("%s not found")\nfile(WRITE "${CMAKE_BINARY_DIR}/data/build_info/%s" "ok=False")""" % ( name, name) descr["on_setup"] = "" output = dep_template % descr tools.rewrite(filename, output) return filename