Skip to content

Commit

Permalink
Support Universal Binary (#1031)
Browse files Browse the repository at this point in the history
Support Universal Binary
  • Loading branch information
durswd authored Jan 1, 2025
1 parent 7197a27 commit 25c293c
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
31 changes: 31 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ if(BUILD_WITH_EASY_PROFILER)
-DSANITIZE_ENABLED=${SANITIZE_ENABLED}
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
-DCMAKE_OSX_ARCHITECTURES:STRING=arm64$<SEMICOLON>x86_64
)

if(BUILD_WITH_POSTFIX)
Expand Down Expand Up @@ -191,6 +192,7 @@ if(BUILD_VIEWER)
-DASM686=off
-DAMD64=off
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
-DCMAKE_OSX_ARCHITECTURES:STRING=arm64$<SEMICOLON>x86_64
)

list(APPEND EFK_THIRDPARTY_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/zlib/include)
Expand All @@ -217,6 +219,8 @@ if(BUILD_VIEWER)
set(LIBPNG_INSTALL ${CMAKE_COMMAND} --install . --prefix <INSTALL_DIR>)
endif()

if(APPLE)
# HACK : https://github.com/pnggroup/libpng/issues/372#issuecomment-2278215058
ExternalProject_Add(
ExternalProject_libpng
DEPENDS ExternalProject_zlib
Expand All @@ -230,10 +234,34 @@ if(BUILD_VIEWER)
-DSANITIZE_ENABLED=${SANITIZE_ENABLED}
-DZLIB_ROOT=${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/zlib/
-DPNG_SHARED=OFF
-DPNG_FRAMEWORK=OFF
-DPNG_EXECUTABLES=OFF
-DPNG_TESTS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
-DCMAKE_OSX_ARCHITECTURES:STRING=arm64$<SEMICOLON>x86_64 # For apple Silicon
-DPNG_HARDWARE_OPTIMIZATIONS=OFF # HACK : For apple Silicon
)
else()
ExternalProject_Add(
ExternalProject_libpng
DEPENDS ExternalProject_zlib
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Dev/Cpp/3rdParty/libpng
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Build/libpng
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/libpng
INSTALL_COMMAND ${LIBPNG_INSTALL}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/libpng
-DCMAKE_USER_MAKE_RULES_OVERRIDE=${CMAKE_CURRENT_SOURCE_DIR}/Dev/CFlagOverrides.cmake
-DEFK_USE_MSVC_RUNTIME_LIBRARY_DLL=${USE_MSVC_RUNTIME_LIBRARY_DLL}
-DSANITIZE_ENABLED=${SANITIZE_ENABLED}
-DZLIB_ROOT=${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/zlib/
-DPNG_SHARED=OFF
-DPNG_FRAMEWORK=OFF
-DPNG_EXECUTABLES=OFF
-DPNG_TESTS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
)
endif()

list(APPEND EFK_THIRDPARTY_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/libpng/include)
list(APPEND EFK_THIRDPARTY_LIBRARY_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/libpng/lib)
if(EXISTS "${ExternalProject_libpng_INSTALL_DIR}/lib64")
Expand Down Expand Up @@ -269,6 +297,7 @@ if(BUILD_VIEWER)
-DBUILD_STATIC_LIBS=ON
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
-DCMAKE_OSX_ARCHITECTURES:STRING=arm64$<SEMICOLON>x86_64
)

if(MSVC)
Expand Down Expand Up @@ -301,6 +330,7 @@ if(BUILD_VIEWER)
-DEFK_USE_MSVC_RUNTIME_LIBRARY_DLL=${USE_MSVC_RUNTIME_LIBRARY_DLL}
-DSANITIZE_ENABLED=${SANITIZE_ENABLED}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
-DCMAKE_OSX_ARCHITECTURES:STRING=arm64$<SEMICOLON>x86_64
)
list(APPEND EFK_THIRDPARTY_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/Downloads/OpenSoundMixer/src)
list(APPEND EFK_THIRDPARTY_LIBRARY_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}/ThirdParty/Install/OpenSoundMixer/lib)
Expand Down Expand Up @@ -359,6 +389,7 @@ if(BUILD_VIEWER OR BUILD_EXAMPLES OR BUILD_TEST)
-DGLFW_BUILD_DOCS=OFF
-DGLFW_INSTALL=ON
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
-DCMAKE_OSX_ARCHITECTURES:STRING=arm64$<SEMICOLON>x86_64
)

if(BUILD_WITH_POSTFIX)
Expand Down
2 changes: 1 addition & 1 deletion build.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ def __exit__(self, type, value, traceback):
call('cmake .. -A x64 -DBUILD_VIEWER=ON -D BUILD_TEST=ON -D BUILD_EXAMPLES=ON' + suffix)

elif isMac():
call('cmake .. -G "Xcode" -DBUILD_VIEWER=ON -D BUILD_TEST=ON -D BUILD_EXAMPLES=ON')
call('cmake .. -G "Xcode" -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DBUILD_VIEWER=ON -D BUILD_TEST=ON -D BUILD_EXAMPLES=ON')
elif find_executable('ninja'):
call('cmake .. -G Ninja -DBUILD_VIEWER=ON -D BUILD_TEST=ON -D BUILD_EXAMPLES=ON')
else:
Expand Down

0 comments on commit 25c293c

Please sign in to comment.