From beec6578c86f030f5d204c841c4eebfdd218e5fc Mon Sep 17 00:00:00 2001 From: Donny Lawrence Date: Thu, 17 May 2018 15:41:31 -0500 Subject: [PATCH] Fix CMake build issues on macOS. --- direct/src/showbase/CMakeLists.txt | 13 +++++++++++-- dtool/src/dtoolutil/CMakeLists.txt | 3 +++ dtool/src/prc/CMakeLists.txt | 1 + panda/metalibs/pandagl/CMakeLists.txt | 2 +- panda/src/cocoadisplay/CMakeLists.txt | 14 +++++++------- panda/src/display/CMakeLists.txt | 1 + panda/src/express/CMakeLists.txt | 2 +- panda/src/osxdisplay/CMakeLists.txt | 6 ++---- 8 files changed, 27 insertions(+), 15 deletions(-) diff --git a/direct/src/showbase/CMakeLists.txt b/direct/src/showbase/CMakeLists.txt index 9ca60be4ed..ee81e81704 100644 --- a/direct/src/showbase/CMakeLists.txt +++ b/direct/src/showbase/CMakeLists.txt @@ -1,5 +1,14 @@ -add_component_library(p3showbase SYMBOL BUILDING_DIRECT_SHOWBASE - showBase.cxx showBase.h) +set(P3SHOWBASE_FILES + showBase.cxx + showBase.h) +set(P3SHOWBASE_EXTRA_ARGS "") +if(IS_OSX) + list(APPEND P3SHOWBASE_FILES showBase_assist.mm) + set(P3SHOWBASE_EXTRA_ARGS "-ObjC++") +endif() + +add_component_library(p3showbase SYMBOL BUILDING_DIRECT_SHOWBASE ${P3SHOWBASE_FILES}) +set_target_properties(p3showbase PROPERTIES COMPILE_FLAGS ${P3SHOWBASE_EXTRA_ARGS}) target_link_libraries(p3showbase p3directbase panda) target_interrogate(p3showbase ALL) diff --git a/dtool/src/dtoolutil/CMakeLists.txt b/dtool/src/dtoolutil/CMakeLists.txt index e2e8cd5cd6..13d389a586 100644 --- a/dtool/src/dtoolutil/CMakeLists.txt +++ b/dtool/src/dtoolutil/CMakeLists.txt @@ -35,6 +35,8 @@ set(P3DTOOLUTIL_HEADERS if(APPLE) set(P3DTOOLUTIL_HEADERS ${P3DTOOLUTIL_HEADERS} filename_assist.mm filename_assist.h) + set(P3DTOOLUTIL_EXTRA_FLAGS "-ObjC++") + set_source_files_properties(filename_assist.mm filename_assist.h PROPERTIES WRAP_EXCLUDE YES) endif() set(P3DTOOLUTIL_SOURCES @@ -73,6 +75,7 @@ composite_sources(p3dtoolutil P3DTOOLUTIL_SOURCES) add_component_library(p3dtoolutil SYMBOL BUILDING_DTOOL_DTOOLUTIL ${P3DTOOLUTIL_HEADERS} ${P3DTOOLUTIL_SOURCES}) +set_target_properties(p3dtoolutil PROPERTIES COMPILE_FLAGS ${P3DTOOLUTIL_EXTRA_FLAGS}) target_include_directories(p3dtoolutil PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) # The extensions need py_panda.h and extension.h from interrogatedb target_include_directories(p3dtoolutil PUBLIC diff --git a/dtool/src/prc/CMakeLists.txt b/dtool/src/prc/CMakeLists.txt index afe1745af5..3b5d3fd237 100644 --- a/dtool/src/prc/CMakeLists.txt +++ b/dtool/src/prc/CMakeLists.txt @@ -77,6 +77,7 @@ target_include_directories(p3prc PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(p3prc PUBLIC $) target_link_libraries(p3prc p3dtool ${_OPENSSL_LIBRARIES}) +target_use_packages(p3prc OPENSSL) target_interrogate(p3prc ALL EXTENSIONS ${P3PRC_IGATEEXT}) install(TARGETS p3prc DESTINATION lib) diff --git a/panda/metalibs/pandagl/CMakeLists.txt b/panda/metalibs/pandagl/CMakeLists.txt index 150b969856..e2bd719880 100644 --- a/panda/metalibs/pandagl/CMakeLists.txt +++ b/panda/metalibs/pandagl/CMakeLists.txt @@ -19,7 +19,7 @@ if(HAVE_GL) if(HAVE_COCOA) set(PANDAGL_LINK_TARGETS ${PANDAGL_LINK_TARGETS} p3cocoadisplay) endif() - + if(HAVE_CARBON) set(PANDAGL_LINK_TARGETS ${PANDAGL_LINK_TARGETS} p3osxdisplay) endif() diff --git a/panda/src/cocoadisplay/CMakeLists.txt b/panda/src/cocoadisplay/CMakeLists.txt index 375b792bdf..822942ff66 100644 --- a/panda/src/cocoadisplay/CMakeLists.txt +++ b/panda/src/cocoadisplay/CMakeLists.txt @@ -7,7 +7,8 @@ set(P3COCOADISPLAY_HEADERS cocoaGraphicsPipe.h cocoaGraphicsPipe.I cocoaGraphicsWindow.h cocoaGraphicsWindow.I cocoaGraphicsStateGuardian.h cocoaGraphicsStateGuardian.I - cocoaPandaApp.h cocoaPandaView.h cocoaPandaWindowDelegate.h) + cocoaPandaApp.h cocoaPandaView.h cocoaPandaWindowDelegate.h + cocoaPandaAppDelegate.h) set(P3COCOADISPLAY_SOURCES config_cocoadisplay.mm @@ -18,11 +19,12 @@ set(P3COCOADISPLAY_SOURCES cocoaPandaApp.mm cocoaPandaView.mm cocoaPandaWindow.mm - cocoaPandaWindowDelegate.mm) + cocoaPandaWindowDelegate.mm + cocoaPandaAppDelegate.mm) -#composite_sources(p3cocoadisplay P3COCOADISPLAY_SOURCES) -add_library(p3cocoadisplay ${P3COCOADISPLAY_HEADERS} ${P3COCOADISPLAY_SOURCES}) -set_target_properties(p3cocoadisplay PROPERTIES DEFINE_SYMBOL BUILDING_PANDAGL) +composite_sources(p3cocoadisplay P3COCOADISPLAY_SOURCES) +add_component_library(p3cocoadisplay ${P3COCOADISPLAY_HEADERS} ${P3COCOADISPLAY_SOURCES}) +set_target_properties(p3cocoadisplay PROPERTIES DEFINE_SYMBOL BUILDING_PANDAGL COMPILE_FLAGS "-ObjC++") target_link_libraries(p3cocoadisplay p3display p3putil p3glgsg) # Frameworks: @@ -31,5 +33,3 @@ find_library(APPKIT_LIBRARY AppKit) find_library(CARBON_LIBRARY Carbon) target_link_libraries(p3cocoadisplay ${APPLICATIONSERVICES_LIBRARY} ${APPKIT_LIBRARY} ${CARBON_LIBRARY}) - -install(TARGETS p3cocoadisplay DESTINATION lib) diff --git a/panda/src/display/CMakeLists.txt b/panda/src/display/CMakeLists.txt index 3f7fb00253..a8479dc9a2 100644 --- a/panda/src/display/CMakeLists.txt +++ b/panda/src/display/CMakeLists.txt @@ -90,6 +90,7 @@ composite_sources(p3display P3DISPLAY_SOURCES) add_component_library(p3display SYMBOL BUILDING_PANDA_DISPLAY ${P3DISPLAY_HEADERS} ${P3DISPLAY_SOURCES}) target_link_libraries(p3display p3cull p3pgraphnodes) +target_use_packages(p3display X11) target_interrogate(p3display ALL EXTENSIONS ${P3DISPLAY_IGATEEXT}) install(TARGETS p3display DESTINATION lib) diff --git a/panda/src/express/CMakeLists.txt b/panda/src/express/CMakeLists.txt index 0543f743c8..6b177ec8a3 100644 --- a/panda/src/express/CMakeLists.txt +++ b/panda/src/express/CMakeLists.txt @@ -151,7 +151,7 @@ add_component_library(p3express SYMBOL BUILDING_PANDAEXPRESS target_include_directories(p3express PUBLIC $) target_link_libraries(p3express p3pandabase p3dtoolconfig p3dtool) -target_use_packages(p3express TAR ZLIB) +target_use_packages(p3express TAR ZLIB OPENSSL) target_interrogate(p3express ALL EXTENSIONS ${P3EXPRESS_IGATEEXT}) if(WIN32) diff --git a/panda/src/osxdisplay/CMakeLists.txt b/panda/src/osxdisplay/CMakeLists.txt index 0d6026e9dd..6cabaca987 100644 --- a/panda/src/osxdisplay/CMakeLists.txt +++ b/panda/src/osxdisplay/CMakeLists.txt @@ -13,8 +13,8 @@ set(P3OSXDISPLAY_SOURCES osxGraphicsBuffer.cxx) composite_sources(p3osxdisplay P3OSXDISPLAY_SOURCES) -add_library(p3osxdisplay ${P3OSXDISPLAY_HEADERS} ${P3OSXDISPLAY_SOURCES}) -set_target_properties(p3osxdisplay PROPERTIES DEFINE_SYMBOL BUILDING_PANDAGL) +add_component_library(p3osxdisplay ${P3OSXDISPLAY_HEADERS} ${P3OSXDISPLAY_SOURCES}) +set_target_properties(p3osxdisplay PROPERTIES DEFINE_SYMBOL BUILDING_PANDAGL COMPILE_FLAGS "-ObjC++") target_link_libraries(p3osxdisplay p3display p3putil p3glgsg) # Frameworks: @@ -26,5 +26,3 @@ find_library(COCOA_LIBRARY Cocoa) target_link_libraries(p3osxdisplay ${APPLICATIONSERVICES_LIBRARY} ${CARBON_LIBRARY} ${AGL_LIBRARY} ${CORESERVICES_LIBRARY} ${COCOA_LIBRARY}) - -install(TARGETS p3osxdisplay DESTINATION lib)