Skip to content

Commit 96c8070

Browse files
committed
Setup for macOS framework and app bundle
Signed-off-by: falkTX <falktx@falktx.com>
1 parent 2f92bc7 commit 96c8070

File tree

2 files changed

+37
-10
lines changed

2 files changed

+37
-10
lines changed

CMakeLists.txt

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ set_property(GLOBAL PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
1717
#######################################################################################################################
1818
# Find Qt
1919

20+
if(APPLE)
21+
set(MODULES_FIXME PrintSupport)
22+
endif()
23+
2024
find_package(PkgConfig REQUIRED)
21-
find_package(Qt5 COMPONENTS REQUIRED Core Widgets)
25+
find_package(Qt5 COMPONENTS REQUIRED Core Widgets ${MODULES_FIXME})
2226

2327
if(NOT (APPLE OR WIN32))
2428
find_package(X11 REQUIRED)
@@ -30,13 +34,23 @@ endif()
3034
#######################################################################################################################
3135
# Import carla stuff
3236

37+
set(CARLA_BUILD_FRAMEWORKS TRUE CACHE BOOL "Build Carla libs as frameworks")
3338
add_subdirectory(carla/cmake)
3439

3540
#######################################################################################################################
3641
# Setup Chibi target
3742

3843
add_executable(Chibi)
3944

45+
set_target_properties(Chibi
46+
PROPERTIES
47+
AUTOMOC ON
48+
AUTOUIC ON
49+
AUTORCC ON
50+
MACOSX_BUNDLE TRUE
51+
WIN32_EXECUTABLE TRUE
52+
)
53+
4054
target_compile_definitions(Chibi
4155
PRIVATE
4256
$<$<BOOL:${X11_FOUND}>:HAVE_X11>
@@ -61,8 +75,9 @@ target_link_libraries(Chibi
6175
carla::utils
6276
Qt5::Core
6377
Qt5::Widgets
78+
$<$<BOOL:${APPLE}>:$<LINK_LIBRARY:Qt5::PrintSupport>>
6479
$<$<BOOL:${APPLE}>:$<LINK_LIBRARY:FRAMEWORK,Cocoa.framework>>
65-
$<$<BOOL:${X11_FOUND}>:Qt::X11Extras>
80+
$<$<BOOL:${X11_FOUND}>:Qt5::X11Extras>
6681
$<$<BOOL:${X11_FOUND}>:X11>
6782
)
6883

@@ -78,15 +93,27 @@ target_sources(Chibi
7893
$<$<BOOL:${WIN32}>:carla/resources/ico/carla.rc>
7994
)
8095

81-
set_target_properties(Chibi
82-
PROPERTIES
83-
AUTOMOC ON
84-
AUTOUIC ON
85-
AUTORCC ON
86-
)
87-
8896
if(APPLE)
8997
set_source_files_properties(
9098
chibiembedwidget.cpp
9199
PROPERTIES COMPILE_FLAGS -ObjC++)
100+
101+
get_target_property(QtWidgetsLocation Qt5::Widgets LIB_LOCATION)
102+
get_filename_component(QtPluginsDir "${QtWidgetsLocation}/../../qt5/plugins" ABSOLUTE)
103+
104+
add_custom_command(TARGET Chibi POST_BUILD
105+
COMMAND ln -sf cmake "${CMAKE_CURRENT_BINARY_DIR}/carla/lib"
106+
)
107+
add_custom_command(TARGET Chibi POST_BUILD
108+
COMMAND macdeployqt $<TARGET_BUNDLE_DIR:Chibi>
109+
)
110+
add_custom_command(TARGET Chibi POST_BUILD
111+
COMMAND mkdir -p "$<TARGET_BUNDLE_DIR:Chibi>/Contents/PlugIns/platforms" "$<TARGET_BUNDLE_DIR:Chibi>/Contents/PlugIns/styles"
112+
)
113+
add_custom_command(TARGET Chibi POST_BUILD
114+
COMMAND cp "${QtPluginsDir}/platforms/libqcocoa.dylib" "$<TARGET_BUNDLE_DIR:Chibi>/Contents/PlugIns/platforms/"
115+
)
116+
add_custom_command(TARGET Chibi POST_BUILD
117+
COMMAND cp "${QtPluginsDir}/styles/libqmacstyle.dylib" "$<TARGET_BUNDLE_DIR:Chibi>/Contents/PlugIns/styles/"
118+
)
92119
endif()

0 commit comments

Comments
 (0)