Skip to content

Commit

Permalink
meson: add macos specific tweaks
Browse files Browse the repository at this point in the history
Treat files as Objective-C++ instead of C++
because some included macos headers are Objective-C++
Objective-C++ apparently is a superset of C++
so we should be all good

Co-authored-by: Alexandre Burton <[email protected]>
Co-authored-by: Adel KARA SLIMANE <[email protected]>
  • Loading branch information
AdelKS and artificiel committed Oct 8, 2024
1 parent bc20719 commit 1632919
Showing 1 changed file with 40 additions and 7 deletions.
47 changes: 40 additions & 7 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -198,9 +198,6 @@ install_headers(
'libs/openFrameworks/utils/ofURLFileLoader.h',
'libs/openFrameworks/utils/ofUtils.h',
'libs/openFrameworks/utils/ofXml.h',
'libs/openFrameworks/video/ofAVFoundationGrabber.h',
'libs/openFrameworks/video/ofAVFoundationPlayer.h',
'libs/openFrameworks/video/ofAVFoundationVideoPlayer.h',
'libs/openFrameworks/video/ofDirectShowGrabber.h',
'libs/openFrameworks/video/ofDirectShowPlayer.h',
'libs/openFrameworks/video/ofMediaFoundationPlayer.h',
Expand Down Expand Up @@ -262,11 +259,46 @@ if host_machine.system() == 'linux'
subdir: 'openframeworks'
)

elif host_machine.system() == 'darwin'

deps += [
dependency('Cocoa'),
dependency('AppKit'),
dependency('Foundation'),
dependency('AVKit'),
dependency('GLKit'),
dependency('AVFoundation'),
dependency('opengl'),
dependency('coremedia'),
dependency('corevideo'),
dependency('accelerate')
]
add_languages('objcpp', native: false)
add_languages('objc', native: false)
add_project_arguments(['-ObjC++', '-fobjc-arc'], language: ['cpp', 'objcpp', 'objc'])

sources += files(
'libs/openFrameworks/sound/ofAVEngineSoundPlayer.mm',
'libs/openFrameworks/video/ofAVFoundationGrabber.mm',
'libs/openFrameworks/video/ofAVFoundationPlayer.mm',
'libs/openFrameworks/video/ofAVFoundationVideoPlayer.m',
)

install_headers(
'libs/openFrameworks/sound/ofAVEngineSoundPlayer.h',
'libs/openFrameworks/video/ofAVFoundationGrabber.h',
'libs/openFrameworks/video/ofAVFoundationPlayer.h',
'libs/openFrameworks/video/ofAVFoundationGrabber.h',
'libs/openFrameworks/video/ofAVFoundationPlayer.h',
'libs/openFrameworks/video/ofAVFoundationVideoPlayer.h',
subdir: 'openframeworks'
)

endif

# We need to treat this dependency independently
# We need to treat this dependency independently
# because if it's not installed in the host system,
# we will use the .wrap file in the subprojects file AND
# we will use the .wrap file in the subprojects file AND
# need to change a define in the cmake subproject
uriparser_dep = dependency('uriparser', required: false)
if not uriparser_dep.found()
Expand Down Expand Up @@ -298,7 +330,7 @@ freeimage_dep = compiler.find_library('freeimage', has_headers: ['FreeImage.h'],
if not freeimage_dep.found()
freeimage_opts = cmake.subproject_options()
# doesn't compile with the define bellow
# freeimage_opts.add_cmake_defines({'BUILD_SHARED_LIBS': true})
# freeimage_opts.add_cmake_defines({'BUILD_SHARED_LIBS': true})
# We need -fPIC to link against the produced static library
freeimage_opts.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': true})
freeimage_proj = cmake.subproject('freeimage', options: freeimage_opts)
Expand All @@ -311,7 +343,8 @@ lib = library('openFrameworks',
sources,
include_directories: inc,
dependencies: deps,
install: true)
install: true,
)

openframeworks_dep = declare_dependency(link_with: lib, include_directories: inc, dependencies: deps)

Expand Down

0 comments on commit 1632919

Please sign in to comment.