From dfeeb2194a6171c78d9e45c234e165e88080b84e Mon Sep 17 00:00:00 2001 From: Lectem Date: Tue, 19 Dec 2017 14:03:13 +0100 Subject: [PATCH] Fix Linux and OSX dependencies + Amalgamated build --- cmake/bgfx.cmake | 29 ++++++++++++++++++----------- cmake/bx.cmake | 4 ++++ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/cmake/bgfx.cmake b/cmake/bgfx.cmake index bc51838..1d313af 100755 --- a/cmake/bgfx.cmake +++ b/cmake/bgfx.cmake @@ -14,24 +14,28 @@ if( NOT IS_DIRECTORY ${BGFX_DIR} ) return() endif() +if(NOT APPLE) + set(BGFX_AMALGAMATED_SOURCE ${BGFX_DIR}/src/amalgamated.cpp) +else() + set(BGFX_AMALGAMATED_SOURCE ${BGFX_DIR}/src/amalgamated.mm) +endif() + # Grab the bgfx source files file( GLOB BGFX_SOURCES ${BGFX_DIR}/src/*.cpp ${BGFX_DIR}/src/*.mm ${BGFX_DIR}/src/*.h ${BGFX_DIR}/include/bgfx/*.h ${BGFX_DIR}/include/bgfx/c99/*.h ) if(BGFX_AMALGAMATED) set(BGFX_NOBUILD ${BGFX_SOURCES}) - list(REMOVE_ITEM BGFX_NOBUILD ${BGFX_DIR}/src/amalgamated.cpp) + list(REMOVE_ITEM BGFX_NOBUILD ${BGFX_AMALGAMATED_SOURCE}) foreach(BGFX_SRC ${BGFX_NOBUILD}) set_source_files_properties( ${BGFX_SRC} PROPERTIES HEADER_FILE_ONLY ON ) endforeach() else() - if(APPLE) - set_source_files_properties( ${BGFX_DIR}/src/amalgamated.mm PROPERTIES HEADER_FILE_ONLY ON ) - else() - set_source_files_properties( ${BGFX_DIR}/src/amalgamated.cpp PROPERTIES HEADER_FILE_ONLY ON ) - endif() + # Do not build using amalgamated sources + set_source_files_properties( ${BGFX_DIR}/src/amalgamated.cpp PROPERTIES HEADER_FILE_ONLY ON ) + set_source_files_properties( ${BGFX_DIR}/src/amalgamated.mm PROPERTIES HEADER_FILE_ONLY ON ) endif() # Create the bgfx target -add_library( bgfx STATIC ${BGFX_SOURCES} ) +add_library( bgfx ${BGFX_SOURCES} ) # Enable BGFX_CONFIG_DEBUG in Debug configuration target_compile_definitions( bgfx PRIVATE "$<$:BGFX_CONFIG_DEBUG=1>" ) @@ -68,12 +72,15 @@ if( APPLE ) endif() if( UNIX AND NOT APPLE ) - target_link_libraries( bgfx PUBLIC GL ) + find_package(X11 REQUIRED) + find_package(OpenGL REQUIRED) + #The following commented libraries are linked by bx + #find_package(Threads REQUIRED) + #find_library(LIBRT_LIBRARIES rt) + #find_library(LIBDL_LIBRARIES dl) + target_link_libraries( bgfx PUBLIC ${X11_LIBRARIES} ${OPENGL_LIBRARIES}) endif() -# Excluded files from compilation -set_source_files_properties( ${BGFX_DIR}/src/amalgamated.mm PROPERTIES HEADER_FILE_ONLY ON ) - # Exclude mm files if not on OS X if( NOT APPLE ) set_source_files_properties( ${BGFX_DIR}/src/glcontext_eagl.mm PROPERTIES HEADER_FILE_ONLY ON ) diff --git a/cmake/bx.cmake b/cmake/bx.cmake index 17d2ad0..c28d867 100644 --- a/cmake/bx.cmake +++ b/cmake/bx.cmake @@ -65,6 +65,10 @@ if( UNIX AND NOT APPLE ) # Real time (for clock_gettime) target_link_libraries( bx rt ) +elseif(APPLE) + find_library( FOUNDATION_LIBRARY Foundation) + mark_as_advanced( FOUNDATION_LIBRARY ) + target_link_libraries( bx PUBLIC ${FOUNDATION_LIBRARY} ) endif() # Put in a "bgfx" folder in Visual Studio