mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-11 22:54:34 +00:00
Merge pull request #1117 from marauder2k9-torque/AppleToolchainTest
Apple toolchain fixes
This commit is contained in:
commit
083e367be1
10 changed files with 251 additions and 54 deletions
|
|
@ -110,6 +110,7 @@ mark_as_advanced(SDL_X11)
|
|||
mark_as_advanced(SDL_XINPUT)
|
||||
|
||||
add_subdirectory(sdl ${TORQUE_LIB_TARG_DIRECTORY}/sdl2 EXCLUDE_FROM_ALL)
|
||||
|
||||
add_subdirectory(nativeFileDialogs ${TORQUE_LIB_TARG_DIRECTORY}/nfd EXCLUDE_FROM_ALL)
|
||||
|
||||
# Assimp
|
||||
|
|
@ -153,10 +154,17 @@ mark_as_advanced(ASSIMP_PACKAGE_VERSION)
|
|||
mark_as_advanced(ASSIMP_RUNTIME_OUTPUT_DIRECTORY)
|
||||
add_subdirectory(assimp ${TORQUE_LIB_TARG_DIRECTORY}/assimp EXCLUDE_FROM_ALL)
|
||||
target_compile_definitions(assimp PUBLIC ASSIMP_BUILD_NO_OWN_ZLIB)
|
||||
|
||||
if (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
|
||||
set(PNG_ARM_NEON on CACHE BOOL "" FORCE)
|
||||
if(NOT APPLE)
|
||||
set(PNG_ARM_NEON on CACHE BOOL "" FORCE)
|
||||
endif(NOT APPLE)
|
||||
endif (TORQUE_CPU_ARM32 OR TORQUE_CPU_ARM64)
|
||||
|
||||
if(APPLE)
|
||||
set(PNG_ARM_NEON off CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
||||
#PNG
|
||||
set(PNG_STATIC on CACHE BOOL "" FORCE)
|
||||
mark_as_advanced(PNG_STATIC)
|
||||
|
|
@ -168,10 +176,12 @@ set(PNG_TESTS off CACHE BOOL "" FORCE)
|
|||
mark_as_advanced(PNG_TESTS)
|
||||
set(PNG_HARDWARE_OPTIMIZATIONS on CACHE BOOL "" FORCE)
|
||||
mark_as_advanced(PNG_HARDWARE_OPTIMIZATIONS)
|
||||
|
||||
if(APPLE)
|
||||
set(PNG_FRAMEWORK on CACHE BOOL "" FORCE)
|
||||
addDef(PNG_DEBUG Debug)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(PNG_DEBUG)
|
||||
mark_as_advanced(PNG_FRAMEWORK)
|
||||
mark_as_advanced(PNG_PREFIX)
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
# When on Windows, we need to link against winsock and windows codecs
|
||||
if (WIN32)
|
||||
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} WS2_32.LIB windowscodecs.lib)
|
||||
set(TORQUE_LINK_WINDOWS ${TORQUE_LINK_WINDOWS} WS2_32.LIB windowscodecs.lib)
|
||||
if (TORQUE_D3D11)
|
||||
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} dxguid.lib)
|
||||
set(TORQUE_LINK_WINDOWS ${TORQUE_LINK_WINDOWS} dxguid.lib)
|
||||
endif (TORQUE_D3D11)
|
||||
endif (WIN32)
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ if (APPLE)
|
|||
addFramework("IOKit")
|
||||
#grrr damn you sdl!
|
||||
addFramework("Carbon")
|
||||
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} iconv)
|
||||
set(TORQUE_LINK_FRAMEWORKS ${TORQUE_LINK_FRAMEWORKS} iconv)
|
||||
if(NOT TORQUE_DEDICATED)
|
||||
addFramework("OpenGL")
|
||||
addFramework("CoreVideo")
|
||||
|
|
@ -36,8 +36,8 @@ set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} nativeFileDialogs)
|
|||
|
||||
# Linux requires X11 & freetype
|
||||
if (UNIX AND NOT APPLE)
|
||||
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} "X11" "Xft" "dl" "pthread")
|
||||
set(TORQUE_LINK_LINUX ${TORQUE_LINK_LINUX} "X11" "Xft" "dl" "pthread")
|
||||
find_package(Freetype REQUIRED)
|
||||
set(TORQUE_INCLUDE_DIRECTORIES ${TORQUE_INCLUDE_DIRECTORIES} ${FREETYPE_INCLUDE_DIRS})
|
||||
set(TORQUE_LINK_LIBRARIES ${TORQUE_LINK_LIBRARIES} ${FREETYPE_LIBRARIES})
|
||||
set(TORQUE_LINK_LINUX ${TORQUE_LINK_LINUX} ${FREETYPE_LIBRARIES})
|
||||
endif (UNIX AND NOT APPLE)
|
||||
|
|
@ -5,7 +5,9 @@ set(TORQUE_NFD_COMMON_SOURCES "${TORQUE_NFD_ROOT}/nfd_common.c")
|
|||
set(TORQUE_NFD_INCLUDE_DIRECTORIES "${TORQUE_NFD_ROOT}" "${TORQUE_NFD_ROOT}/include")
|
||||
|
||||
if (APPLE)
|
||||
enable_language(OBJC)
|
||||
set(TORQUE_NFD_SOURCES ${TORQUE_NFD_COMMON_SOURCES} "${TORQUE_NFD_ROOT}/nfd_cocoa.m")
|
||||
set_source_files_properties(${TORQUE_NFD_SOURCES} PROPERTIES LANGUAGE OBJC)
|
||||
elseif (UNIX)
|
||||
if (TORQUE_USE_ZENITY)
|
||||
set(TORQUE_NFD_SOURCES ${TORQUE_NFD_COMMON_SOURCES} "${TORQUE_NFD_ROOT}/nfd_zenity.c")
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ static void SetDefaultPath( NSSavePanel *dialog, const nfdchar_t *defaultPath )
|
|||
|
||||
NSString *defaultPathString = [NSString stringWithUTF8String: defaultPath];
|
||||
NSURL *url = [NSURL fileURLWithPath:defaultPathString isDirectory:YES];
|
||||
[dialog setDirectoryURL:url];
|
||||
[dialog setDirectoryURL:url];
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ static nfdresult_t AllocPathSet( NSArray *urls, nfdpathset_t *pathset )
|
|||
|
||||
pathset->count = (size_t)[urls count];
|
||||
pathset->indices = NFDi_Malloc( sizeof(size_t)*pathset->count );
|
||||
if ( !pathset->indices )
|
||||
if ( !pathset->indices )
|
||||
{
|
||||
return NFD_ERROR;
|
||||
}
|
||||
|
|
@ -125,7 +125,7 @@ nfdresult_t NFD_OpenDialog( const nfdchar_t *filterList,
|
|||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSWindow *keyWindow = [[NSApplication sharedApplication] keyWindow];
|
||||
NSWindow *keyWindow = [[NSApplication sharedApplication] keyWindow];
|
||||
NSOpenPanel *dialog = [NSOpenPanel openPanel];
|
||||
[dialog setAllowsMultipleSelection:NO];
|
||||
|
||||
|
|
@ -148,7 +148,7 @@ nfdresult_t NFD_OpenDialog( const nfdchar_t *filterList,
|
|||
if ( !*outPath )
|
||||
{
|
||||
[pool release];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
return NFD_ERROR;
|
||||
}
|
||||
memcpy( *outPath, utf8Path, len+1 ); /* copy null term */
|
||||
|
|
@ -185,14 +185,14 @@ nfdresult_t NFD_OpenDialogMultiple( const nfdchar_t *filterList,
|
|||
if ( [urls count] == 0 )
|
||||
{
|
||||
[pool release];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
return NFD_CANCEL;
|
||||
}
|
||||
|
||||
if ( AllocPathSet( urls, outPaths ) == NFD_ERROR )
|
||||
{
|
||||
[pool release];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
return NFD_ERROR;
|
||||
}
|
||||
|
||||
|
|
@ -200,7 +200,7 @@ nfdresult_t NFD_OpenDialogMultiple( const nfdchar_t *filterList,
|
|||
}
|
||||
[pool release];
|
||||
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
return nfdResult;
|
||||
}
|
||||
|
||||
|
|
@ -233,7 +233,7 @@ nfdresult_t NFD_SaveDialog( const nfdchar_t *filterList,
|
|||
if ( !*outPath )
|
||||
{
|
||||
[pool release];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
return NFD_ERROR;
|
||||
}
|
||||
memcpy( *outPath, utf8Path, byteLen );
|
||||
|
|
@ -273,7 +273,7 @@ nfdresult_t NFD_PickFolder(const nfdchar_t *defaultPath,
|
|||
if ( !*outPath )
|
||||
{
|
||||
[pool release];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
[keyWindow makeKeyAndOrderFront:nil];
|
||||
return NFD_ERROR;
|
||||
}
|
||||
memcpy( *outPath, utf8Path, len+1 ); /* copy null term */
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ torqueAddSourceDirectories("platform" "platform/threads" "platform/async"
|
|||
"platform/input" "platform/output")
|
||||
|
||||
torqueAddSourceDirectories("platform/nativeDialogs")
|
||||
|
||||
# Handle T3D
|
||||
torqueAddSourceDirectories("T3D/fps" "T3D/fx" "T3D/vehicles" "T3D/physics"
|
||||
"T3D/decal" "T3D/sfx" "T3D/gameBase" "T3D/turret"
|
||||
|
|
@ -199,9 +198,11 @@ torqueAddSourceDirectories("i18n")
|
|||
if (UNIX)
|
||||
torqueAddSourceDirectories("platformPOSIX")
|
||||
|
||||
if (TORQUE_CPU_X32 OR TORQUE_CPU_X64)
|
||||
torqueAddSourceDirectories("platformX86UNIX")
|
||||
endif (TORQUE_CPU_X32 OR TORQUE_CPU_X64)
|
||||
if(NOT APPLE)
|
||||
if (TORQUE_CPU_X32 OR TORQUE_CPU_X64)
|
||||
torqueAddSourceDirectories("platformX86UNIX")
|
||||
endif (TORQUE_CPU_X32 OR TORQUE_CPU_X64)
|
||||
endif(NOT APPLE)
|
||||
endif (UNIX)
|
||||
|
||||
# Handle platformMac
|
||||
|
|
@ -308,8 +309,23 @@ endif (WIN32)
|
|||
|
||||
# Prepare OSX Plist
|
||||
if (APPLE)
|
||||
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_MAC_SOURCES} "${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns")
|
||||
set_source_files_properties("${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns" PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||
set(MACOSX_RESOURCES "${CMAKE_SOURCE_DIR}/Tools/CMake/torque.icns"
|
||||
"${TORQUE_APP_GAME_DIRECTORY}/data"
|
||||
"${TORQUE_APP_GAME_DIRECTORY}/core"
|
||||
"${TORQUE_APP_GAME_DIRECTORY}/tools"
|
||||
"${TORQUE_APP_GAME_DIRECTORY}/main.${TORQUE_SCRIPT_EXTENSION}"
|
||||
"${TORQUE_APP_GAME_DIRECTORY}/${TORQUE_APP_NAME}.torsion"
|
||||
"${TORQUE_APP_GAME_DIRECTORY}/Template.torsion.exports")
|
||||
|
||||
if(TORQUE_TESTING)
|
||||
set(MACOSX_RESOURCES ${MACOSX_RESOURCES} "${TORQUE_APP_GAME_DIRECTORY}/runTests.${TORQUE_SCRIPT_EXTENSION}")
|
||||
endif()
|
||||
|
||||
set(TORQUE_SOURCE_FILES ${TORQUE_SOURCE_FILES} ${TORQUE_PLATFORM_MAC_SOURCES} ${MACOSX_RESOURCES})
|
||||
|
||||
source_group("Resources" FILES ${MACOSX_RESOURCES})
|
||||
|
||||
set_source_files_properties(${MACOSX_RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||
|
||||
set(EXECUTABLE_NAME "${TORQUE_APP_NAME}")
|
||||
configure_file("${CMAKE_SOURCE_DIR}/Tools/CMake/Info.plist.in" "${TORQUE_APP_ROOT_DIRECTORY}/source/Info.plist" COPYONLY)
|
||||
|
|
@ -351,10 +367,19 @@ endif (TORQUE_DYNAMIC_LIBRARY AND NOT TORQUE_TESTING)
|
|||
|
||||
if (APPLE)
|
||||
add_executable(${TORQUE_APP_NAME} MACOSX_BUNDLE ${TORQUE_SOURCE_FILES})
|
||||
set_target_properties(${TORQUE_APP_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${TORQUE_APP_ROOT_DIRECTORY}/source/Info.plist")
|
||||
set_target_properties(${TORQUE_APP_NAME} PROPERTIES
|
||||
BUNDLE true
|
||||
MACOSX_BUNDLE_INFO_PLIST "${TORQUE_APP_ROOT_DIRECTORY}/source/Info.plist"
|
||||
XCODE_ATTRIBUTE_INSTALL_PATH "/Applications"
|
||||
XCODE_ATTRIBUTE_SKIP_INSTALL "No"
|
||||
XCODE_ATTRIBUTE_LINKER_DISPLAYS_MANGLED_NAMES[variant=Debug] YES
|
||||
XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Debug] YES
|
||||
XCODE_ATTRIBUTE_ENABLE_TESTABILITY[variant=Debug] YES
|
||||
XCODE_ATTRIBUTE_SDL_FILE_DIR[variant=Debug] parent
|
||||
XCODE_ATTRIBUTE_SDL_FILE_DIR[variant=RelWithDebInfo] parent
|
||||
XCODE_ATTRIBUTE_SDL_FILE_DIR[variant=Release] resource
|
||||
MACOSX_RPATH TRUE)
|
||||
|
||||
# Ensure the shared libraries are actually referenced at the correct path
|
||||
set(CMAKE_XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@executable_path/../Frameworks")
|
||||
elseif (WIN32)
|
||||
add_executable(${TORQUE_APP_NAME} WIN32 ${TORQUE_SOURCE_FILES})
|
||||
|
||||
|
|
@ -401,8 +426,27 @@ if(MSVC)
|
|||
set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${TORQUE_APP_NAME})
|
||||
endif()
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
foreach (TORQUE_LIBRARY ${TORQUE_LINK_LIBRARIES})
|
||||
set_target_properties(${TORQUE_LIBRARY} PROPERTIES
|
||||
FOLDER "Libraries")
|
||||
endforeach()
|
||||
|
||||
target_compile_definitions(${TORQUE_APP_NAME} PUBLIC ${TORQUE_COMPILE_DEFINITIONS})
|
||||
target_link_libraries(${TORQUE_APP_NAME} ${TORQUE_LINK_LIBRARIES})
|
||||
|
||||
if(APPLE)
|
||||
target_link_libraries(${TORQUE_APP_NAME} ${TORQUE_LINK_FRAMEWORKS})
|
||||
endif(APPLE)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${TORQUE_APP_NAME} ${TORQUE_LINK_WINDOWS})
|
||||
endif(WIN32)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
target_link_libraries(${TORQUE_APP_NAME} ${TORQUE_LINK_LINUX})
|
||||
endif(UNIX AND NOT APPLE)
|
||||
|
||||
target_link_options(${TORQUE_APP_NAME} PUBLIC ${TORQUE_LINK_OPTIONS})
|
||||
if (TORQUE_TARGET_PROPERTIES)
|
||||
set_target_properties(${TORQUE_APP_NAME} PROPERTIES ${TORQUE_TARGET_PROPERTIES})
|
||||
|
|
@ -425,7 +469,7 @@ append_defs()
|
|||
foreach (LIBRARY_BINARY ${TORQUE_ADDITIONAL_LIBRARY_BINARIES})
|
||||
if (APPLE)
|
||||
# For OSX, we want these binaries to be copied to the Frameworks directory
|
||||
add_custom_command(TARGET ${TORQUE_APP_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_BINARY} "${TORQUE_APP_GAME_DIRECTORY}/${TORQUE_APP_NAME}.app/Contents/Frameworks")
|
||||
add_custom_command(TARGET ${TORQUE_APP_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_BINARY} "${TORQUE_APP_GAME_DIRECTORY}/${TORQUE_APP_NAME}.app/Contents/Frameworks/$(CONFIGURATION)")
|
||||
else()
|
||||
# All other platforms expect the file next to the executable
|
||||
add_custom_command(TARGET ${TORQUE_APP_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_BINARY} "${TORQUE_APP_GAME_DIRECTORY}")
|
||||
|
|
@ -442,11 +486,11 @@ if (UNIX)
|
|||
# For eg. OSX some links are not valid targets - for example frameworks provided by OS
|
||||
if (TARGET ${GAME_LINK_LIBRARY})
|
||||
get_target_property(LINK_LIBRARY_TYPE ${GAME_LINK_LIBRARY} TYPE)
|
||||
|
||||
# Only pay attention to shared libraries and make them output to the app resources
|
||||
if ("${LINK_LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY")
|
||||
if (APPLE)
|
||||
set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}/${TORQUE_APP_NAME}.app/Contents/Frameworks")
|
||||
set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES
|
||||
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath")
|
||||
else()
|
||||
set_target_properties(${GAME_LINK_LIBRARY} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TORQUE_APP_GAME_DIRECTORY}")
|
||||
endif(APPLE)
|
||||
|
|
|
|||
|
|
@ -646,7 +646,7 @@ StringTableEntry Platform::getExecutablePath()
|
|||
return cwd;
|
||||
}
|
||||
|
||||
NSString* string = [[NSBundle mainBundle] pathForResource:@"main" ofType:@"cs"];
|
||||
NSString* string = [[NSBundle mainBundle] pathForResource:@"main" ofType:@"tscript"];
|
||||
if(!string)
|
||||
string = [[NSBundle mainBundle] bundlePath];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue