Basic osx support.
This commit is contained in:
@@ -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
4
cmake/3rdparty/fcpp.cmake
vendored
Normal file → Executable 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
12
cmake/3rdparty/glsl-optimizer.cmake
vendored
Normal file → Executable 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
11
cmake/bgfx.cmake
Normal file → Executable 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
16
cmake/examples.cmake
Normal file → Executable 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 )
|
||||
|
||||
Reference in New Issue
Block a user