Python: Basic setup.py

This commit is contained in:
Jeffrey Pfau 2016-10-13 23:02:01 -07:00
parent 99a85aaf3a
commit 0d1d5c988e
8 changed files with 35 additions and 9 deletions

View File

@ -8,13 +8,21 @@ foreach(COMPILE_DEF IN LISTS COMPILE_DEFINITIONS)
list(APPEND PY_COMPILE_DEFS -D${COMPILE_DEF})
endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
add_custom_command(OUTPUT _builder.h
COMMAND ${CMAKE_C_COMPILER} ${PY_COMPILE_DEFS} ${PY_INCLUDE_DIRS} -fno-inline -E -P -c ${CMAKE_CURRENT_SOURCE_DIR}/_builder.h -o _builder.h
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/_builder.h)
add_custom_target(_builder.h ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/_builder.h)
add_custom_command(OUTPUT ${BINARY_NAME}/_pylib.so
COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/_builder.py ${PY_COMPILE_DEFS} ${PY_INCLUDE_DIRS}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/_builder.py
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/_builder.h)
add_custom_target(_pylib.so ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${BINARY_NAME}/_pylib.so)
add_custom_target(${BINARY_NAME}-pylib COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/_builder.py ${PY_COMPILE_DEFS} ${PY_INCLUDE_DIRS}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/_builder.py
DEPENDS _builder.h)
add_custom_command(OUTPUT ${BINARY_NAME}/__init__.py
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${BINARY_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${BINARY_NAME}
COMMAND python ${CMAKE_CURRENT_BINARY_DIR}/setup.py build
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/setup.py
DEPENDS ${BINARY_NAME}-pylib)
add_custom_target(${BINARY_NAME}-py ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${BINARY_NAME}/__init__.py)

View File

@ -4,7 +4,7 @@ def find(path):
core = lib.mCoreFind(path.encode('UTF-8'))
if core == ffi.NULL:
return None
return mCore(core)
return Core(core)
def loadPath(path):
core = find(path)
@ -12,7 +12,7 @@ def loadPath(path):
return None
return core
class mCore:
class Core:
def __init__(self, native):
self._core = ffi.gc(native, self._deinit)
success = bool(self._core.init(self._core))
@ -81,9 +81,9 @@ class mCore:
if hasattr(lib, 'PLATFORM_GBA'):
from .gba import GBA
from .arm import ARMCore
mCore.PLATFORM_GBA = lib.PLATFORM_GBA
Core.PLATFORM_GBA = lib.PLATFORM_GBA
if hasattr(lib, 'PLATFORM_GB'):
from .gb import GB
from .lr35902 import LR35902Core
mCore.PLATFORM_GB = lib.PLATFORM_GB
Core.PLATFORM_GB = lib.PLATFORM_GB

View File

@ -0,0 +1,18 @@
from setuptools import setup
classifiers = [
"Programming Language :: Python :: 2",
# "Programming Language :: Python :: 3",
"License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)"
]
setup(name="${BINARY_NAME}",
version="${VERSION_STRING}",
author="Jeffrey Pfau",
author_email="jeffrey@endrift.com",
url="http://github.com/mgba-emu/mgba/",
packages=["mgba"],
license="MPL 2.0",
classifiers=classifiers
)