Skip to content

Commit

Permalink
Disable C extensions when building docs
Browse files Browse the repository at this point in the history
  • Loading branch information
TeamSpen210 committed Jan 25, 2025
1 parent bcd9e39 commit 434814c
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 59 deletions.
69 changes: 43 additions & 26 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,56 @@ project(
'cython', 'c', 'cpp',
version: '2.4.2',
default_options : ['c_std=c11', 'cpp_std=c++11'],
meson_version:'>=1.1',
)

fs = import('fs')
py = import('python').find_installation(pure: false)
dep_py = py.dependency()

build_extensions = get_option('build_extensions')
summary({'option': build_extensions}, section: 'Build C Extensions')

# Build quickhull.
inc_quickhull = include_directories('src' / 'quickhull')
lib_quickhull = static_library(
'quickhull',
files(
'src' / 'quickhull' / 'QuickHull.cpp',
),
include_directories: inc_quickhull,
)
# Can't check environment variables directly, need to launch Python.
res = run_command(py, '-c', 'import os; print("READTHEDOCS" in os.environ)', check: true)
if res.returncode() == 0 and 'True' in res.stdout()
build_extensions = false
endif
summary({'stdout': res.stdout(), 'build': build_extensions}, section: 'Build C Extensions')

# Build libsquish
inc_libsquish = include_directories('src' / 'libsquish')
lib_squish = static_library(
'libsquish',
files(
'src' / 'libsquish' / 'alpha.cpp',
'src' / 'libsquish' / 'clusterfit.cpp',
'src' / 'libsquish' / 'colourblock.cpp',
'src' / 'libsquish' / 'colourfit.cpp',
'src' / 'libsquish' / 'colourset.cpp',
'src' / 'libsquish' / 'maths.cpp',
'src' / 'libsquish' / 'rangefit.cpp',
'src' / 'libsquish' / 'singlecolourfit.cpp',
'src' / 'libsquish' / 'squish.cpp',
),
include_directories: inc_libsquish,
)
if build_extensions
# Build quickhull.
inc_quickhull = include_directories('src' / 'quickhull')
lib_quickhull = static_library(
'quickhull',
files(
'src' / 'quickhull' / 'QuickHull.cpp',
),
include_directories: inc_quickhull,
)

# Build libsquish
inc_libsquish = include_directories('src' / 'libsquish')
lib_squish = static_library(
'libsquish',
files(
'src' / 'libsquish' / 'alpha.cpp',
'src' / 'libsquish' / 'clusterfit.cpp',
'src' / 'libsquish' / 'colourblock.cpp',
'src' / 'libsquish' / 'colourfit.cpp',
'src' / 'libsquish' / 'colourset.cpp',
'src' / 'libsquish' / 'maths.cpp',
'src' / 'libsquish' / 'rangefit.cpp',
'src' / 'libsquish' / 'singlecolourfit.cpp',
'src' / 'libsquish' / 'squish.cpp',
),
include_directories: inc_libsquish,
)
else
inc_quickhull = disabler()
lib_quickhull = disabler()
inc_squish = disabler()
lib_squish = disabler()
endif

subdir('src' / 'srctools')
1 change: 1 addition & 0 deletions meson.options
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
option('build_extensions', type : 'boolean', value : true, description: 'Build C extensions.')
68 changes: 35 additions & 33 deletions src/srctools/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -44,40 +44,42 @@ py.install_sources(pure_python, subdir: 'srctools')
subdir('_pyinstaller')
subdir('scripts')

py.extension_module(
'_math',
files(
'_math.pyx',
'_math_matrix.cpp',
),
override_options: ['cython_language=cpp'],
link_with: [lib_quickhull],
include_directories: inc_quickhull,
if build_extensions
py.extension_module(
'_math',
files(
'_math.pyx',
'_math_matrix.cpp',
),
override_options: ['cython_language=cpp'],
link_with: [lib_quickhull],
include_directories: inc_quickhull,

dependencies: dep_py,
install: true,
subdir: 'srctools',
)
dependencies: dep_py,
install: true,
subdir: 'srctools',
)

py.extension_module(
'_tokenizer',
files(
'_tokenizer.pyx',
),
install: true,
subdir: 'srctools',
)
py.extension_module(
'_tokenizer',
files(
'_tokenizer.pyx',
),
install: true,
subdir: 'srctools',
)

py.extension_module(
'_cy_vtf_readwrite',
files(
'_cy_vtf_readwrite.pyx',
),
override_options: ['cython_language=cpp'],
link_with: [lib_squish],
include_directories: inc_libsquish,
py.extension_module(
'_cy_vtf_readwrite',
files(
'_cy_vtf_readwrite.pyx',
),
override_options: ['cython_language=cpp'],
link_with: [lib_squish],
include_directories: inc_libsquish,

dependencies: dep_py,
install: true,
subdir: 'srctools',
)
dependencies: dep_py,
install: true,
subdir: 'srctools',
)
endif

0 comments on commit 434814c

Please sign in to comment.