Cross-Platform build scripts for audio plugins
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
6.0KB

  1. diff --git a/cx_Freeze/hooks.py b/cx_Freeze/hooks.py
  2. index 3474f3e..cd04a2a 100644
  3. --- a/cx_Freeze/hooks.py
  4. +++ b/cx_Freeze/hooks.py
  5. @@ -97,6 +97,8 @@ def load_cryptography_hazmat_bindings__padding(finder, module):
  6. def load__ctypes(finder, module):
  7. """In Windows, the _ctypes module in Python >= 3.8 requires an additional dll
  8. libffi-7.dll to be present in the build directory."""
  9. + # but not for PawPaw
  10. + return
  11. if sys.platform == "win32" and sys.version_info >= (3, 8):
  12. dll_name = "libffi-7.dll"
  13. dll_path = os.path.join(sys.base_prefix, "DLLs", dll_name)
  14. diff --git a/setup.py b/setup.py
  15. index af6689f..d7c84a1 100755
  16. --- a/setup.py
  17. +++ b/setup.py
  18. @@ -8,6 +8,7 @@ import distutils.command.install_data
  19. import distutils.sysconfig
  20. import os
  21. import sys
  22. +from subprocess import getoutput
  23. if sys.version_info < (3, 5):
  24. sys.exit("Sorry, Python < 3.5 is not supported. Use cx_Freeze 5 for "
  25. @@ -22,11 +23,6 @@ except ImportError:
  26. class build_ext(distutils.command.build_ext.build_ext):
  27. def build_extension(self, ext):
  28. - if "bases" not in ext.name:
  29. - distutils.command.build_ext.build_ext.build_extension(self, ext)
  30. - return
  31. - if sys.platform == "win32" and self.compiler.compiler_type == "mingw32":
  32. - ext.sources.append("source/bases/manifest.rc")
  33. os.environ["LD_RUN_PATH"] = "${ORIGIN}/../lib:${ORIGIN}/lib"
  34. objects = self.compiler.compile(ext.sources,
  35. output_dir = self.build_temp,
  36. @@ -41,34 +37,15 @@ class build_ext(distutils.command.build_ext.build_ext):
  37. libraryDirs = ext.library_dirs or []
  38. libraries = self.get_libraries(ext)
  39. extraArgs = ext.extra_link_args or []
  40. - if sys.platform == "win32":
  41. - compiler_type = self.compiler.compiler_type
  42. - if compiler_type == "msvc":
  43. - extraArgs.append("/MANIFEST")
  44. - elif compiler_type == "mingw32":
  45. - if "Win32GUI" in ext.name:
  46. - extraArgs.append("-mwindows")
  47. - else:
  48. - extraArgs.append("-mconsole")
  49. - if sys.version_info[0] == 3:
  50. - extraArgs.append("-municode")
  51. + compiler_type = self.compiler.compiler_type
  52. + if "Win32GUI" in ext.name:
  53. + extraArgs.append("-mwindows")
  54. else:
  55. - vars = distutils.sysconfig.get_config_vars()
  56. - libraryDirs.append(vars["LIBPL"])
  57. - abiflags = getattr(sys, "abiflags", "")
  58. - libraries.append("python%s.%s%s" % \
  59. - (sys.version_info[0], sys.version_info[1], abiflags))
  60. - if vars["LINKFORSHARED"] and sys.platform != "darwin":
  61. - extraArgs.extend(vars["LINKFORSHARED"].split())
  62. - if vars["LIBS"]:
  63. - extraArgs.extend(vars["LIBS"].split())
  64. - if vars["LIBM"]:
  65. - extraArgs.append(vars["LIBM"])
  66. - if vars["BASEMODLIBS"]:
  67. - extraArgs.extend(vars["BASEMODLIBS"].split())
  68. - if vars["LOCALMODLIBS"]:
  69. - extraArgs.extend(vars["LOCALMODLIBS"].split())
  70. - extraArgs.append("-s")
  71. + extraArgs.append("-mconsole")
  72. + if sys.version_info[0] == 3:
  73. + extraArgs.append("-municode")
  74. + extraArgs += getoutput("pkg-config --libs python3").split()
  75. + extraArgs += os.getenv("LDFLAGS", "").split()
  76. self.compiler.link_executable(objects, fullName,
  77. libraries = libraries,
  78. library_dirs = libraryDirs,
  79. @@ -103,10 +80,7 @@ def find_cx_Logging():
  80. commandClasses = dict(build_ext=build_ext)
  81. # build utility module
  82. -if sys.platform == "win32":
  83. - libraries = ["imagehlp", "Shlwapi"]
  84. -else:
  85. - libraries = []
  86. +libraries = ["imagehlp", "shlwapi"]
  87. utilModule = Extension("cx_Freeze.util", ["source/util.c"],
  88. libraries = libraries)
  89. @@ -117,7 +91,7 @@ depends = ["source/bases/Common.c"]
  90. console = Extension("cx_Freeze.bases.Console", ["source/bases/Console.c"],
  91. depends = depends, libraries = libraries)
  92. extensions = [utilModule, console]
  93. -if sys.platform == "win32":
  94. +if sys.platform == "win32" or True:
  95. gui = Extension("cx_Freeze.bases.Win32GUI", ["source/bases/Win32GUI.c"],
  96. depends = depends, libraries = libraries + ["user32"])
  97. extensions.append(gui)
  98. diff --git a/setup.py b/setup.py
  99. index d7c84a1..e0fdcfc 100755
  100. --- a/setup.py
  101. +++ b/setup.py
  102. @@ -27,6 +27,7 @@ class build_ext(distutils.command.build_ext.build_ext):
  103. objects = self.compiler.compile(ext.sources,
  104. output_dir = self.build_temp,
  105. include_dirs = ext.include_dirs,
  106. + extra_preargs = getoutput("pkg-config --cflags python3").split() + os.getenv("CFLAGS", "").split(),
  107. debug = self.debug,
  108. depends = ext.depends)
  109. fileName = os.path.splitext(self.get_ext_filename(ext.name))[0]
  110. @@ -37,13 +38,18 @@ class build_ext(distutils.command.build_ext.build_ext):
  111. libraryDirs = ext.library_dirs or []
  112. libraries = self.get_libraries(ext)
  113. extraArgs = ext.extra_link_args or []
  114. - compiler_type = self.compiler.compiler_type
  115. - if "Win32GUI" in ext.name:
  116. - extraArgs.append("-mwindows")
  117. + if "bases" in ext.name:
  118. + if "Win32GUI" in ext.name:
  119. + extraArgs.append("-mwindows")
  120. + else:
  121. + extraArgs.append("-mconsole")
  122. + if sys.version_info[0] == 3:
  123. + extraArgs.append("-municode")
  124. + if not os.path.exists("build/manifest.o"):
  125. + os.system(os.getenv("WINDRES") + " source/bases/manifest.rc build/manifest.o")
  126. + extraArgs.append("build/manifest.o")
  127. else:
  128. - extraArgs.append("-mconsole")
  129. - if sys.version_info[0] == 3:
  130. - extraArgs.append("-municode")
  131. + extraArgs.append("-shared")
  132. extraArgs += getoutput("pkg-config --libs python3").split()
  133. extraArgs += os.getenv("LDFLAGS", "").split()
  134. self.compiler.link_executable(objects, fullName,