Basic osx support.

This commit is contained in:
Joshua Brookover
2016-09-05 19:47:55 -05:00
parent b030cbac0c
commit 8f9fb0006a
5 changed files with 39 additions and 7 deletions

View File

@@ -4,6 +4,9 @@ cmake_minimum_required( VERSION 3.0 )
project( bgfx )
set_property( GLOBAL PROPERTY USE_FOLDERS ON )
if( APPLE )
set( CMAKE_CXX_FLAGS "-ObjC++" )
endif()
include( cmake/bx.cmake )
include( cmake/bgfx.cmake )

4
cmake/3rdparty/fcpp.cmake vendored Normal file → Executable file
View File

@@ -4,6 +4,8 @@ file( GLOB FCPP_SOURCES ${BGFX_DIR}/3rdparty/fcpp/*.c ${BGFX_DIR}/3rdparty/fcpp/
add_library( fcpp STATIC ${FCPP_SOURCES} )
target_include_directories( fcpp PUBLIC ${BGFX_DIR}/3rdparty/fcpp )
set_target_properties( fcpp PROPERTIES COMPILE_FLAGS "/W0" )
if( MSVC )
set_target_properties( fcpp PROPERTIES COMPILE_FLAGS "/W0" )
endif()
set_target_properties( fcpp PROPERTIES FOLDER "3rdparty" )
set_source_files_properties( ${BGFX_DIR}/3rdparty/fcpp/usecpp.c PROPERTIES HEADER_FILE_ONLY ON )

12
cmake/3rdparty/glsl-optimizer.cmake vendored Normal file → Executable file
View File

@@ -12,14 +12,18 @@ set( GLSL-OPTIMIZER_INCLUDES
file( GLOB GLCPP_SOURCES ${BGFX_DIR}/3rdparty/glsl-optimizer/src/glsl/glcpp/*.c ${BGFX_DIR}/3rdparty/glsl-optimizer/src/util/*.c )
add_library( glcpp ${GLCPP_SOURCES} )
target_include_directories( glcpp PUBLIC ${GLSL-OPTIMIZER_INCLUDES} )
set_target_properties( glcpp PROPERTIES COMPILE_FLAGS "/W0" )
if( MSVC )
set_target_properties( glcpp PROPERTIES COMPILE_FLAGS "/W0" )
endif()
set_target_properties( glcpp PROPERTIES FOLDER "3rdparty" )
# mesa
file( GLOB MESA_SOURCES ${BGFX_DIR}/3rdparty/glsl-optimizer/src/mesa/program/*.c ${BGFX_DIR}/3rdparty/glsl-optimizer/src/mesa/main/*.c )
add_library( mesa ${MESA_SOURCES} )
target_include_directories( mesa PUBLIC ${GLSL-OPTIMIZER_INCLUDES} )
set_target_properties( mesa PROPERTIES COMPILE_FLAGS "/W0" )
if( MSVC )
set_target_properties( mesa PROPERTIES COMPILE_FLAGS "/W0" )
endif()
set_target_properties( mesa PROPERTIES FOLDER "3rdparty" )
# glsl_optimizer
@@ -28,5 +32,7 @@ file( GLOB GLSL-OPTIMIZER_SOURCES_REMOVE ${BGFX_DIR}/3rdparty/glsl-optimizer/src
list( REMOVE_ITEM GLSL-OPTIMIZER_SOURCES ${GLSL-OPTIMIZER_SOURCES_REMOVE} )
add_library( glsl-optimizer ${GLSL-OPTIMIZER_SOURCES} )
target_link_libraries( glsl-optimizer glcpp mesa )
set_target_properties( glsl-optimizer PROPERTIES COMPILE_FLAGS "/W0" )
if( MSVC )
set_target_properties( glsl-optimizer PROPERTIES COMPILE_FLAGS "/W0" )
endif()
set_target_properties( glsl-optimizer PROPERTIES FOLDER "3rdparty" )

11
cmake/bgfx.cmake Normal file → Executable file
View File

@@ -14,6 +14,17 @@ target_link_libraries( bgfx PUBLIC bx )
if( MSVC )
target_link_libraries( bgfx PUBLIC psapi )
endif()
if( APPLE )
find_library( CARBON_LIBRARY Carbon )
find_library( COCOA_LIBRARY Cocoa )
find_library( METAL_LIBRARY Metal )
find_library( QUARTZCORE_LIBRARY QuartzCore )
mark_as_advanced( CARBON_LIBRARY )
mark_as_advanced( COCOA_LIBRARY )
mark_as_advanced( METAL_LIBRARY )
mark_as_advanced( QUARTZCORE_LIBRARY )
target_link_libraries( bgfx PUBLIC ${CARBON_LIBRARY} ${COCOA_LIBRARY} ${METAL_LIBRARY} ${QUARTZCORE_LIBRARY} )
endif()
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 )
set_source_files_properties( ${BGFX_DIR}/src/hmd_ovr.cpp PROPERTIES HEADER_FILE_ONLY ON )

16
cmake/examples.cmake Normal file → Executable file
View File

@@ -20,9 +20,15 @@ function( add_bgfx_shader FILE FOLDER )
set( TYPE "" )
endif()
if( NOT "${TYPE}" STREQUAL "" )
set( COMMON FILE ${FILE} OUTPUT ${BGFX_DIR}/examples/runtime/shaders/dx11/${FILENAME}.bin ${TYPE} INCLUDES ${BGFX_DIR}/src )
shaderc( ${COMMON} WINDOWS PROFILE ${D3D_PREFIX}_4_0 )
#shaderc( ${COMMON} LINUX PROFILE 120 )
set( COMMON FILE ${FILE} ${TYPE} INCLUDES ${BGFX_DIR}/src )
if( WIN32 )
shaderc( ${COMMON} WINDOWS PROFILE ${D3D_PREFIX}_4_0 OUTPUT ${BGFX_DIR}/examples/runtime/shaders/dx11/${FILENAME}.bin )
elseif( APPLE )
#shaderc( ${COMMON} OSX OUTPUT ${BGFX_DIR}/examples/runtime/shaders/metal/${FILENAME}.bin )
shaderc( ${COMMON} LINUX PROFILE 120 OUTPUT ${BGFX_DIR}/examples/runtime/shaders/glsl/${FILENAME}.bin )
else()
shaderc( ${COMMON} LINUX PROFILE 120 OUTPUT ${BGFX_DIR}/examples/runtime/shaders/glsl/${FILENAME}.bin )
endif()
endif()
endfunction()
@@ -35,6 +41,10 @@ function( add_example ARG_NAME )
set( SOURCES "" )
set( SHADERS "" )
foreach( DIR ${ARG_DIRECTORIES} )
if( APPLE )
file( GLOB GLOB_SOURCES ${DIR}/*.mm )
list( APPEND SOURCES ${GLOB_SOURCES} )
endif()
file( GLOB GLOB_SOURCES ${DIR}/*.c ${DIR}/*.cpp ${DIR}/*.h ${DIR}/*.sc )
list( APPEND SOURCES ${GLOB_SOURCES} )
file( GLOB GLOB_SHADERS ${DIR}/*.sc )