浏览代码

Update ICNS once again (+2 squashed commits)
Squashed commits:
[d2592b0] Update CI Script
[c2fab64] Updating CEF (+8 squashed commits)
Squashed commits:
[a965379] Updating CEF
[58da073] Separate icns for AtomicEditor
[6eb2298] Revert "Separate AtomicPlayer and AtomicPlayer icns files for Xcode 7.3"

This reverts commit 03063615e1f2f439c294830bf4903fd9dc984cf4.
[0306361] Separate AtomicPlayer and AtomicPlayer icns files for Xcode 7.3
[6836b12] Updating Mac WebView
[54b36df] Updating Linux WebView
[a1410a7] Chromium 51 up and running on WIndows
[d05ab03] Updating CEF3

Josh Engebretson 9 年之前
父节点
当前提交
0719a90146

+ 1 - 3
Build/CIScripts/GenMacEditor.js

@@ -21,10 +21,8 @@ namespace('build', function() {
       "chmod +x " + editorAppFolder + "/Contents/Resources/ToolData/Deployment/MacOS/AtomicPlayer.app/Contents/MacOS/AtomicPlayer",
       "security unlock-keychain -p \"jenkins\" /Users/jenkins/Library/Keychains/login.keychain  ",
       "codesign --force --verify --verbose --sign \"Developer ID Application: THUNDERBEAST GAMES LLC (C7M5MAQQWR)\" " + editorAppFolder + "/Contents/Frameworks/AtomicEditor\\ Helper.app",
-      "codesign --force --verify --verbose --sign \"Developer ID Application: THUNDERBEAST GAMES LLC (C7M5MAQQWR)\" " + editorAppFolder + "/Contents//Frameworks/AtomicEditor\\ Helper\\ EH.app",
-      "codesign --force --verify --verbose --sign \"Developer ID Application: THUNDERBEAST GAMES LLC (C7M5MAQQWR)\" " + editorAppFolder + "/Contents/Frameworks/AtomicEditor\\ Helper\\ NP.app",
       "codesign --force --verify --verbose --sign \"Developer ID Application: THUNDERBEAST GAMES LLC (C7M5MAQQWR)\" " + editorAppFolder + "/Contents/Frameworks/Chromium\\ Embedded\\ Framework.framework",
-      "codesign --force --verify --verbose --sign \"Developer ID Application: THUNDERBEAST GAMES LLC (C7M5MAQQWR)\" " + editorAppFolder,      
+      "codesign --force --verify --verbose --sign \"Developer ID Application: THUNDERBEAST GAMES LLC (C7M5MAQQWR)\" " + editorAppFolder,
       "cd " + dstDir + " && zip -r -X " + "./MacEditorInstaller/AtomicEditor_MacOSX_" + bcommon.buildSHA + ".zip ./AtomicEditor.app"
     ];
 

+ 0 - 2
Build/CMake/Modules/AtomicDesktop.cmake

@@ -25,7 +25,5 @@ if (EXISTS ${CMAKE_SOURCE_DIR}/Submodules/CEF)
     endif()
     set(ATOMIC_WEBVIEW TRUE)
     add_definitions( -DATOMIC_WEBVIEW )
-    include("AtomicWebView")
 endif()
-
 include(AtomicNET)

二进制
Build/CMake/Modules/AtomicEditor.icns


+ 2 - 2
Build/CMake/Modules/AtomicMac.cmake

@@ -19,6 +19,6 @@ endif()
 
 list (APPEND ATOMIC_LINK_LIBRARIES GLEW)
 
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -std=gnu++11")
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -std=gnu++11 -stdlib=libc++")
 
-set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework ForceFeedback -framework IOKit -framework OpenGL -framework CoreServices -framework Security")
+set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework ForceFeedback -framework IOKit -framework OpenGL -framework CoreServices -framework Security")

+ 0 - 363
Build/CMake/Modules/AtomicWebView.cmake

@@ -1,363 +0,0 @@
-
-# Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights
-# reserved. Use of this source code is governed by a BSD-style license that
-# can be found in the LICENSE file.
-
-# Determine the platform.
-
-if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
-  set(OS_MACOSX 1)
-  set(OS_POSIX 1)
-elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
-  set(OS_LINUX 1)
-  set(OS_POSIX 1)
-elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
-  set(OS_WINDOWS 1)
-endif()
-
-if(OS_MACOSX)
-    set(CEF_STANDARD_LIBS "-lpthread" "-framework Cocoa" "-framework AppKit")
-    set(CEF_LIBTYPE SHARED)
-
-    # using release
-    #set(CEF_BINARY_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/MacOSX/$<CONFIGURATION>")
-    set(CEF_BINARY_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/MacOSX/Release")
-
-    set(CEF_BINARY_DIR_RELEASE "${CMAKE_SOURCE_DIR}/Submodules/CEF/MacOSX/Release")
-    set(CEF_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/Chromium Embedded Framework.framework/Chromium Embedded Framework")
-
-    # using release
-    set(CEF_BINARY_DIR_DEBUG "${CMAKE_SOURCE_DIR}/Submodules/CEF/MacOSX/Release")
-    set(CEF_LIB_DEBUG "${CEF_BINARY_DIR_DEBUG}/Chromium Embedded Framework.framework/Chromium Embedded Framework")
-
-endif()
-
-if(OS_WINDOWS)
-
-    if (ATOMIC_PROJECT_ARCH STREQUAL "x86")
-        set(CEF_BINARY_DIR_RELEASE "${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/32bit/Release")
-        set(CEF_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/libcef.lib")
-        set(CEF_BINARY_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/32bit/Release")
-        set(CEF_RESOURCE_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/32bit/Resources")
-    else()
-        set(CEF_BINARY_DIR_RELEASE "${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/64bit/Release")
-        set(CEF_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/libcef.lib")
-        set(CEF_BINARY_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/64bit/Release")
-        set(CEF_RESOURCE_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/64bit/Resources")
-    endif()
-endif()
-
-if(OS_LINUX)
-    set(CEF_BINARY_DIR_RELEASE "${CMAKE_SOURCE_DIR}/Submodules/CEF/Linux/Release")
-    set(CEF_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/libcef.so")
-    set(CEF_BINARY_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/Linux/Release")
-    set(CEF_RESOURCE_DIR "${CMAKE_SOURCE_DIR}/Submodules/CEF/Linux/Resources")
-endif()
-
-
-#
-# Shared macros.
-#
-
-# Append platform specific sources to a list of sources.
-macro(APPEND_PLATFORM_SOURCES name_of_list)
-  if(OS_LINUX AND ${name_of_list}_LINUX)
-    list(APPEND ${name_of_list} ${${name_of_list}_LINUX})
-  endif()
-  if(OS_POSIX AND ${name_of_list}_POSIX)
-    list(APPEND ${name_of_list} ${${name_of_list}_POSIX})
-  endif()
-  if(OS_WINDOWS AND ${name_of_list}_WINDOWS)
-    list(APPEND ${name_of_list} ${${name_of_list}_WINDOWS})
-  endif()
-  if(OS_MACOSX AND ${name_of_list}_MACOSX)
-    list(APPEND ${name_of_list} ${${name_of_list}_MACOSX})
-  endif()
-endmacro()
-
-# Add a logical target that can be used to link the specified libraries into an
-# executable target.
-macro(ADD_LOGICAL_TARGET target debug_lib release_lib)
-  add_library(${target} ${CEF_LIBTYPE} IMPORTED)
-  set_target_properties(${target} PROPERTIES
-    IMPORTED_LOCATION "${release_lib}"
-    IMPORTED_LOCATION_DEBUG "${debug_lib}"
-    IMPORTED_LOCATION_RELEASE "${release_lib}"
-    )
-endmacro()
-
-# Determine the target output directory based on platform and generator.
-macro(SET_CEF_TARGET_OUT_DIR)
-  if(${CMAKE_GENERATOR} STREQUAL "Ninja")
-    # Ninja does not create a subdirectory named after the configuration.
-    set(CEF_TARGET_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
-  elseif(OS_LINUX)
-    set(CEF_TARGET_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
-  else()
-    # ATOMIC: Unix Makefiles not creating Debug/Release?
-
-    if(${CMAKE_GENERATOR} STREQUAL "Xcode" OR ${CMAKE_GENERATOR} STREQUAL "Visual Studio 14 2015" OR ${CMAKE_GENERATOR} STREQUAL "Visual Studio 14 2015 Win64")
-      set(CEF_TARGET_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>")
-    else()
-      set(CEF_TARGET_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
-    endif()
-  endif()
-endmacro()
-
-# Copy a list of files from one directory to another. Relative files paths are maintained.
-macro(COPY_FILES target file_list source_dir target_dir)
-  foreach(FILENAME ${file_list})
-    set(source_file ${source_dir}/${FILENAME})
-    set(target_file ${target_dir}/${FILENAME})
-    if(IS_DIRECTORY ${source_file})
-      add_custom_command(
-        TARGET ${target}
-        POST_BUILD
-        COMMAND ${CMAKE_COMMAND} -E copy_directory "${source_file}" "${target_file}"
-        VERBATIM
-        )
-    else()
-      add_custom_command(
-        TARGET ${target}
-        POST_BUILD
-        COMMAND ${CMAKE_COMMAND} -E copy_if_different "${source_file}" "${target_file}"
-        VERBATIM
-        )
-    endif()
-  endforeach()
-endmacro()
-
-# Rename a directory replacing the target if it already exists.
-macro(RENAME_DIRECTORY target source_dir target_dir)
-  add_custom_command(
-    TARGET ${target}
-    POST_BUILD
-    # Remove the target directory if it already exists.
-    COMMAND ${CMAKE_COMMAND} -E remove_directory "${target_dir}"
-    # Rename the source directory to target directory.
-    COMMAND ${CMAKE_COMMAND} -E rename "${source_dir}" "${target_dir}"
-    VERBATIM
-    )
-endmacro()
-
-
-#
-# Linux macros.
-#
-
-if(OS_LINUX)
-
-# Use pkg-config to find Linux libraries and update compiler/linker variables.
-macro(FIND_LINUX_LIBRARIES libraries)
-  # Read pkg-config info into variables.
-  execute_process(COMMAND pkg-config --cflags ${libraries} OUTPUT_VARIABLE FLL_CFLAGS)
-  execute_process(COMMAND pkg-config --libs-only-L --libs-only-other ${libraries} OUTPUT_VARIABLE FLL_LDFLAGS)
-  execute_process(COMMAND pkg-config --libs-only-l ${libraries} OUTPUT_VARIABLE FLL_LIBS)
-
-  # Strip leading and trailing whitepspace.
-  STRING(STRIP "${FLL_CFLAGS}"  FLL_CFLAGS)
-  STRING(STRIP "${FLL_LDFLAGS}" FLL_LDFLAGS)
-  STRING(STRIP "${FLL_LIBS}"    FLL_LIBS)
-
-  # Update the variables.
-  set(CMAKE_C_FLAGS             "${CMAKE_C_FLAGS} ${FLL_CFLAGS}")
-  set(CMAKE_CXX_FLAGS           "${CMAKE_CXX_FLAGS} ${FLL_CFLAGS}")
-  set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS} ${FLL_LDFLAGS}")
-  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLL_LDFLAGS}")
-  set(CEF_STANDARD_LIBS         "${CEF_STANDARD_LIBS} ${FLL_LIBS}")
-endmacro()
-
-# Set SUID permissions on the specified executable.
-macro(SET_LINUX_SUID_PERMISSIONS target executable)
-  add_custom_command(
-    TARGET ${target}
-    POST_BUILD
-    COMMAND ${CMAKE_COMMAND} -E echo ""
-    COMMAND ${CMAKE_COMMAND} -E echo "*** Run the following command manually to set SUID permissions ***"
-    COMMAND ${CMAKE_COMMAND} -E echo "EXE=\"${executable}\" && sudo -- chown root:root $EXE && sudo -- chmod 4755 $EXE"
-    COMMAND ${CMAKE_COMMAND} -E echo ""
-    VERBATIM
-    )
-endmacro()
-
-endif(OS_LINUX)
-
-
-#
-# Mac OS X macros.
-#
-
-if(OS_MACOSX)
-
-# Set Xcode target properties.
-function(SET_XCODE_TARGET_PROPERTIES target)
-  set_target_properties(${target} PROPERTIES
-    XCODE_ATTRIBUTE_ALWAYS_SEARCH_USER_PATHS                    NO
-    XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD                 "gnu++11"   # -std=gnu++11
-    XCODE_ATTRIBUTE_CLANG_LINK_OBJC_RUNTIME                     NO          # -fno-objc-link-runtime
-    XCODE_ATTRIBUTE_CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS  YES         # -Wobjc-missing-property-synthesis
-    XCODE_ATTRIBUTE_COPY_PHASE_STRIP                            NO
-    XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING[variant=Release]        YES         # -Wl,-dead_strip
-    XCODE_ATTRIBUTE_GCC_C_LANGUAGE_STANDARD                     "c99"       # -std=c99
-    XCODE_ATTRIBUTE_GCC_CW_ASM_SYNTAX                           NO          # No -fasm-blocks
-    XCODE_ATTRIBUTE_GCC_DYNAMIC_NO_PIC                          NO
-    XCODE_ATTRIBUTE_GCC_ENABLE_CPP_EXCEPTIONS                   NO          # -fno-exceptions
-    XCODE_ATTRIBUTE_GCC_ENABLE_CPP_RTTI                         NO          # -fno-rtti
-    XCODE_ATTRIBUTE_GCC_ENABLE_PASCAL_STRINGS                   NO          # No -mpascal-strings
-    XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN              YES         # -fvisibility-inlines-hidden
-    XCODE_ATTRIBUTE_GCC_OBJC_CALL_CXX_CDTORS                    YES         # -fobjc-call-cxx-cdtors
-    XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN                  YES         # -fvisibility=hidden
-    XCODE_ATTRIBUTE_GCC_THREADSAFE_STATICS                      NO          # -fno-threadsafe-statics
-    XCODE_ATTRIBUTE_GCC_TREAT_WARNINGS_AS_ERRORS                YES         # -Werror
-    XCODE_ATTRIBUTE_GCC_VERSION                                 "com.apple.compilers.llvm.clang.1_0"
-    XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_NEWLINE              YES         # -Wnewline-eof
-    XCODE_ATTRIBUTE_USE_HEADERMAP                               NO
-    OSX_ARCHITECTURES_DEBUG                                     "${CMAKE_OSX_ARCHITECTURES}"
-    OSX_ARCHITECTURES_RELEASE                                   "${CMAKE_OSX_ARCHITECTURES}"
-    )
-endfunction()
-
-# Override default add_library function.
-function(cef_add_library name)
-  add_library(${name} ${ARGN})
-  SET_XCODE_TARGET_PROPERTIES(${name})
-endfunction()
-
-# Override default add_executable function.
-function(cef_add_executable name)
-  add_executable(${name} ${ARGN})
-  SET_XCODE_TARGET_PROPERTIES(${name})
-endfunction()
-
-# Fix the framework link in the helper executable.
-macro(FIX_MACOSX_HELPER_FRAMEWORK_LINK target app_path)
-  add_custom_command(TARGET ${target}
-    POST_BUILD
-    COMMAND install_name_tool -change "@executable_path/Chromium Embedded Framework"
-            "@executable_path/../../../../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework"
-            "${app_path}/Contents/MacOS/${target}"
-    VERBATIM
-    )
-endmacro()
-
-# Fix the framework link in the main executable.
-macro(FIX_MACOSX_MAIN_FRAMEWORK_LINK target app_path)
-  add_custom_command(TARGET ${target}
-    POST_BUILD
-    COMMAND install_name_tool -change "@executable_path/Chromium Embedded Framework"
-            "@executable_path/../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework"
-            "${app_path}/Contents/MacOS/${target}"
-    VERBATIM
-    )
-endmacro()
-
-# Make the other helper app bundles.
-macro(MAKE_MACOSX_HELPERS target app_path)
-  add_custom_command(TARGET ${target}
-    POST_BUILD
-    # The exported variables need to be set for generators other than Xcode.
-    COMMAND export BUILT_PRODUCTS_DIR=${app_path} &&
-            export CONTENTS_FOLDER_PATH=/Contents &&
-            ${CMAKE_SOURCE_DIR}/Submodules/CEF/MacOSX/tools/make_more_helpers.sh "Frameworks" "${target}"
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
-    VERBATIM
-    )
-endmacro()
-
-# Manually process and copy over resource files.
-macro(COPY_MACOSX_RESOURCES resource_list prefix_list target source_dir app_path)
-  foreach(FILENAME ${resource_list})
-    # Remove one or more prefixes from the source paths.
-    set(TARGET_FILENAME "${FILENAME}")
-    foreach(PREFIX ${prefix_list})
-      string(REGEX REPLACE "^.*${PREFIX}" "" TARGET_FILENAME ${TARGET_FILENAME})
-    endforeach()
-
-    # Determine the absolute source and target paths.
-    set(TARGET_PATH "${app_path}/Contents/Resources/${TARGET_FILENAME}")
-    if(IS_ABSOLUTE ${FILENAME})
-      set(SOURCE_PATH ${FILENAME})
-    else()
-      set(SOURCE_PATH "${source_dir}/${FILENAME}")
-    endif()
-
-    if(${FILENAME} MATCHES ".xib$")
-      # Change the target file extension.
-      string(REGEX REPLACE ".xib$" ".nib" TARGET_PATH ${TARGET_PATH})
-
-      get_filename_component(TARGET_DIRECTORY ${TARGET_PATH} PATH)
-      add_custom_command(
-        TARGET ${target}
-        POST_BUILD
-        # Create the target directory.
-        COMMAND ${CMAKE_COMMAND} -E make_directory "${TARGET_DIRECTORY}"
-        # Compile the XIB file to a NIB.
-        COMMAND /usr/bin/ibtool --output-format binary1 --compile "${TARGET_PATH}" "${SOURCE_PATH}"
-        VERBATIM
-        )
-    elseif(NOT ${TARGET_FILENAME} STREQUAL "Info.plist")
-      # Copy the file as-is.
-      add_custom_command(
-        TARGET ${target}
-        POST_BUILD
-        COMMAND ${CMAKE_COMMAND} -E copy "${SOURCE_PATH}" "${TARGET_PATH}"
-        VERBATIM
-        )
-    endif()
-  endforeach()
-endmacro()
-
-endif(OS_MACOSX)
-
-
-#
-# Windows macros.
-#
-
-if(OS_WINDOWS)
-
-# Add custom manifest files to an executable target.
-macro(ADD_WINDOWS_MANIFEST manifest_path target)
-  add_custom_command(
-    TARGET ${target}
-    POST_BUILD
-    COMMAND "mt.exe" -nologo
-            -manifest \"${manifest_path}/${target}.exe.manifest\" \"${manifest_path}/compatibility.manifest\"
-            -outputresource:"${CEF_TARGET_OUT_DIR}/${target}.exe"\;\#1
-    COMMENT "Adding manifest..."
-    )
-endmacro()
-
-# List of CEF binary files.
-set(CEF_BINARY_FILES
-  d3dcompiler_43.dll
-  d3dcompiler_47.dll
-  libcef.dll
-  libEGL.dll
-  libGLESv2.dll
-  natives_blob.bin
-  snapshot_blob.bin
-  )
-
-
-if(ATOMIC_PROJECT_ARCH STREQUAL "x86")
-    #Only used on 32-bit platforms.
-  set(CEF_BINARY_FILES
-    ${CEF_BINARY_FILES}
-    wow_helper.exe
-    )
-endif()
-
-# List of CEF resource files.
-set(CEF_RESOURCE_FILES
-  cef.pak
-  cef_100_percent.pak
-  cef_200_percent.pak
-  cef_extensions.pak
-  devtools_resources.pak
-  icudtl.dat
-  locales
-  )
-
-
-endif(OS_WINDOWS)

+ 18 - 26
Build/Scripts/BuildLinux.js

@@ -57,30 +57,24 @@ task('atomiceditor', {
       fs.copySync(buildDir +  "Source/AtomicPlayer/Application/AtomicPlayer",
         editorAppFolder + "Resources/ToolData/Deployment/Linux/AtomicPlayer");
 
-      // Copy CEF support files
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/icudtl.dat",
-        editorAppFolder+"/icudtl.dat");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Release/natives_blob.bin",
-        editorAppFolder+"/natives_blob.bin");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Release/snapshot_blob.bin",
-        editorAppFolder+"/snapshot_blob.bin");
-
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/locales", editorAppFolder+"/locales");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef.pak", editorAppFolder+"/cef.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef_100_percent.pak", editorAppFolder+"/cef_100_percent.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef_200_percent.pak", editorAppFolder+"/cef_200_percent.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef_extensions.pak", editorAppFolder+"/cef_extensions.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/devtools_resources.pak", editorAppFolder+"/devtools_resources.pak");
-
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/icudtl.dat",  atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/icudtl.dat");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Release/natives_blob.bin", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/natives_blob.bin");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Release/snapshot_blob.bin", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/snapshot_blob.bin");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/locales", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/locales");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef.pak", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/cef.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef_100_percent.pak", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/cef_100_percent.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef_200_percent.pak", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/cef_200_percent.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/cef_extensions.pak", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/cef_extensions.pak");
-      fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/devtools_resources.pak", atomicRoot +"/Artifacts/Build/Linux/Source/AtomicEditor/devtools_resources.pak");
+
+      var binaryFiles = ["chrome-sandbox", "libcef.so", "natives_blob.bin", "snapshot_blob.bin"];
+
+      var resourceFiles = ["cef.pak",
+                "cef_100_percent.pak",
+                "cef_200_percent.pak",
+                "cef_extensions.pak",
+                "devtools_resources.pak",
+                "icudtl.dat",
+                "locales"];
+
+      for (var i = 0; i < binaryFiles.length; i++) {
+        fs.copySync(atomicRoot + "Submodules/CEF/Linux/Release/" + binaryFiles[i], editorAppFolder+"/" + binaryFiles[i]);
+      }
+
+      for (var i = 0; i < resourceFiles.length; i++) {
+        fs.copySync(atomicRoot + "Submodules/CEF/Linux/Resources/" + resourceFiles[i], editorAppFolder+"/" + resourceFiles[i]);
+      }
 
 
     console.log("\n\nAtomic Editor build to " + editorAppFolder + "\n\n");
@@ -92,5 +86,3 @@ task('atomiceditor', {
   });
 
 });
-
-});// end of build namespace

+ 12 - 10
CMakeLists.txt

@@ -1,7 +1,7 @@
 
 project (Atomic)
 
-cmake_minimum_required (VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.12.1)
 
 set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/Build/CMake/Modules)
 
@@ -71,27 +71,29 @@ if(CLDOC)
 endif()
 
 if (ATOMIC_WEBVIEW)
+
   if(APPLE)
     if(POLICY CMP0037)
       # new cmake doesn't like creating framework whose name has spaces
       # which CEF3 scripts (including shell) currently require on OSX
       cmake_policy(SET CMP0037 OLD)
     endif()
-    include_directories (${CMAKE_SOURCE_DIR}/Submodules/CEF/MacOSX/)
-    add_subdirectory(Submodules/CEF/MacOSX/libcef_dll)
+    set(CEF_ROOT "${CMAKE_SOURCE_DIR}/Submodules/CEF/MacOSX")
   elseif(MSVC)
     if (ATOMIC_PROJECT_ARCH STREQUAL "x86")
-        include_directories (${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/32bit)
-        add_subdirectory(Submodules/CEF/Windows/32bit/libcef_dll)
     else()
-        include_directories (${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/64bit)
-        add_subdirectory(Submodules/CEF/Windows/64bit/libcef_dll)
+      set(CEF_ROOT "${CMAKE_SOURCE_DIR}/Submodules/CEF/Windows/64bit")
     endif()
-
   else()
-    include_directories (${CMAKE_SOURCE_DIR}/Submodules/CEF/Linux)
-    add_subdirectory(Submodules/CEF/Linux/libcef_dll)
+      set(CEF_ROOT "${CMAKE_SOURCE_DIR}/Submodules/CEF/Linux")
   endif()
+
+  set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CEF_ROOT}/cmake")
+  find_package(CEF REQUIRED)
+  include_directories(${CEF_ROOT})
+
+  add_subdirectory(${CEF_LIBCEF_DLL_WRAPPER_PATH} libcef_dll_wrapper)
+
 endif()
 
 add_subdirectory(Source)

+ 2 - 1
Source/Atomic/Graphics/Texture2D.h

@@ -28,4 +28,5 @@
 #include "Direct3D11/D3D11Texture2D.h"
 #else
 #include "Direct3D9/D3D9Texture2D.h"
-#endif
+#endif
+

+ 1 - 1
Source/Atomic/Graphics/TextureCube.h

@@ -28,4 +28,4 @@
 #include "Direct3D11/D3D11TextureCube.h"
 #else
 #include "Direct3D9/D3D9TextureCube.h"
-#endif
+#endif

+ 1 - 1
Source/Atomic/Resource/Configuration.h

@@ -45,7 +45,7 @@ public:
     void ApplyConfig(VariantMap& settings, bool overwrite = false);
 
     const VariantMap& GetConfig() { return valueMap_; }
-    const bool IsLoaded() const { return isLoaded_; }
+    bool IsLoaded() const { return isLoaded_; }
 
 protected:
     static bool GetBoolValue(const JSONValue& jvalue, bool defaultValue);

+ 62 - 29
Source/AtomicEditor/CMakeLists.txt

@@ -23,8 +23,8 @@ if (APPLE)
     set (EXE_TYPE MACOSX_BUNDLE)
 
     #ICNS
-    set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
-    set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.icns)
+    set(MACOSX_BUNDLE_ICON_FILE AtomicEditor.icns)
+    set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/AtomicEditor.icns)
     set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
 
 else()
@@ -40,35 +40,51 @@ else()
 
 endif(APPLE)
 
-add_executable(AtomicEditor ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
-
-target_link_libraries(AtomicEditor ToolCore AtomicJS AtomicPlayerJS AtomicNETJS ToolCoreJS Poco nativefiledialog ${ATOMIC_LINK_LIBRARIES})
-
 if (ATOMIC_WEBVIEW)
 
 # Target executable names.
 set(CEF_TARGET "AtomicEditor")
-
 if(OS_MACOSX)
   set(CEF_HELPER_TARGET "AtomicEditor Helper")
 endif()
 
-if (OS_WINDOWS)
-    target_link_libraries(AtomicEditor AtomicWebView libcef_dll_wrapper "${CEF_LIB_RELEASE}")
-endif()
+# Logical target used to link the libcef library.
+ADD_LOGICAL_TARGET("libcef_lib" "${CEF_LIB_DEBUG}" "${CEF_LIB_RELEASE}")
 
-if (OS_LINUX)
-    target_link_libraries(AtomicEditor AtomicWebView X11 libcef_dll_wrapper "${CEF_LIB_RELEASE}")
-endif()
+# Determine the target output directory.
+SET_CEF_TARGET_OUT_DIR()
 
-if(OS_MACOSX)
 
-  # Logical target used to link the libcef library.
-  ADD_LOGICAL_TARGET("libcef_lib" "${CEF_LIB_DEBUG}" "${CEF_LIB_RELEASE}")
+#
+# Windows configuration.
+#
 
-  # Determine the target output directory.
-  SET_CEF_TARGET_OUT_DIR()
+if(OS_WINDOWS)
+  # Executable target.
+  add_executable(${CEF_TARGET} ${EXE_TYPE} ${SOURCE_FILES})
+  add_dependencies(${CEF_TARGET} libcef_dll_wrapper)
+  SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_TARGET})
+  target_link_libraries(${CEF_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS})
+
+  if(USE_SANDBOX)
+    # Logical target used to link the cef_sandbox library.
+    ADD_LOGICAL_TARGET("cef_sandbox_lib" "${CEF_SANDBOX_LIB_DEBUG}" "${CEF_SANDBOX_LIB_RELEASE}")
+    target_link_libraries(${CEF_TARGET} cef_sandbox_lib ${CEF_SANDBOX_STANDARD_LIBS})
+  endif()
+
+  # Add the custom manifest files to the executable.
+  ADD_WINDOWS_MANIFEST("${CMAKE_CURRENT_SOURCE_DIR}/Windows" "${CEF_TARGET}")
 
+  # Copy binary and resource files to the target output directory.
+  COPY_FILES("${CEF_TARGET}" "${CEF_BINARY_FILES}" "${CEF_BINARY_DIR}" "${CEF_TARGET_OUT_DIR}")
+  COPY_FILES("${CEF_TARGET}" "${CEF_RESOURCE_FILES}" "${CEF_RESOURCE_DIR}" "${CEF_TARGET_OUT_DIR}")
+endif()
+
+#
+# Mac OS X configuration.
+#
+
+if(APPLE)
   # Output paths for the app bundles.
   set(CEF_APP "${CEF_TARGET_OUT_DIR}/${CEF_TARGET}.app")
   set(CEF_HELPER_APP "${CEF_TARGET_OUT_DIR}/${CEF_HELPER_TARGET}.app")
@@ -78,18 +94,27 @@ if(OS_MACOSX)
 
   # Helper executable target.
   add_executable(${CEF_HELPER_TARGET} MACOSX_BUNDLE "${CMAKE_CURRENT_SOURCE_DIR}/WebView/WebProcessHelperMac.cpp")
+  SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_HELPER_TARGET})
   add_dependencies(${CEF_HELPER_TARGET} libcef_dll_wrapper)
   target_link_libraries(${CEF_HELPER_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS} Atomic AtomicWebView ${ATOMIC_LINK_LIBRARIES})
+
   set_target_properties(${CEF_HELPER_TARGET} PROPERTIES
-    MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/Build/CMake/Modules/AtomicEditor-HelperInfo.plist.template"
+      MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/Build/CMake/Modules/AtomicEditor-HelperInfo.plist.template"
     )
 
   # Fix the framework link in the helper executable.
   FIX_MACOSX_HELPER_FRAMEWORK_LINK(${CEF_HELPER_TARGET} ${CEF_HELPER_APP})
 
   # Main executable target.
+  add_executable(${CEF_TARGET} ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
+
+  SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_TARGET})
   add_dependencies(${CEF_TARGET} libcef_dll_wrapper "${CEF_HELPER_TARGET}")
-  target_link_libraries(${CEF_TARGET} AtomicWebView libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS})
+  target_link_libraries(${CEF_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS})
+  set_target_properties(${CEF_TARGET} PROPERTIES
+    RESOURCE "${CEFSIMPLE_RESOURCES_SRCS}"
+    MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.plist
+    )
 
   # Copy files into the main app bundle.
   add_custom_command(
@@ -109,31 +134,38 @@ if(OS_MACOSX)
   # Fix the framework link in the main executable.
   FIX_MACOSX_MAIN_FRAMEWORK_LINK(${CEF_TARGET} ${CEF_APP})
 
-  # Make the other helper app bundles.
-  MAKE_MACOSX_HELPERS(${CEF_TARGET} ${CEF_APP})
-
   if(NOT ${CMAKE_GENERATOR} STREQUAL "Xcode")
     # Manually process and copy over resource files.
     # The Xcode generator handles this via the set_target_properties RESOURCE directive.
     set(PREFIXES "mac/")  # Remove these prefixes from input file paths.
     COPY_MACOSX_RESOURCES("${CEFSIMPLE_RESOURCES_SRCS}" "${PREFIXES}" "${CEF_TARGET}" "${CMAKE_CURRENT_SOURCE_DIR}" "${CEF_APP}")
   endif()
-endif()
+endif(APPLE)
 
-if(OS_WINDOWS)
+if(OS_LINUX)
+  # Executable target.
+  add_executable(${CEF_TARGET} ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
+  SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_TARGET})
+  add_dependencies(${CEF_TARGET} libcef_dll_wrapper)
 
-  # Determine the target output directory.
-  SET_CEF_TARGET_OUT_DIR()
+  # Set rpath so that libraries can be placed next to the executable.
+  set_target_properties(${CEF_TARGET} PROPERTIES INSTALL_RPATH "$ORIGIN")
+  set_target_properties(${CEF_TARGET} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
+  set_target_properties(${CEF_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CEF_TARGET_OUT_DIR})
 
-  # Copy CEF binary and resource files to the target output directory.
-  # set(CEF_TARGET_OUT_DIR $<TARGET_FILE_DIR:AtomicEditor>)
+  # Copy binary and resource files to the target output directory.
   COPY_FILES("${CEF_TARGET}" "${CEF_BINARY_FILES}" "${CEF_BINARY_DIR}" "${CEF_TARGET_OUT_DIR}")
   COPY_FILES("${CEF_TARGET}" "${CEF_RESOURCE_FILES}" "${CEF_RESOURCE_DIR}" "${CEF_TARGET_OUT_DIR}")
 
+  # Set SUID permissions on the chrome-sandbox target.
+  SET_LINUX_SUID_PERMISSIONS("${CEF_TARGET}" "${CEF_TARGET_OUT_DIR}/chrome-sandbox")
 endif()
 
+
 endif(ATOMIC_WEBVIEW)
 
+target_link_libraries(${CEF_TARGET} ToolCore AtomicWebView AtomicJS AtomicPlayerJS AtomicNETJS ToolCoreJS Poco nativefiledialog ${ATOMIC_LINK_LIBRARIES})
+
 
 if (APPLE)
 
@@ -145,6 +177,7 @@ if (APPLE)
 
 elseif(LINUX)
     target_link_libraries(AtomicEditor NETCore NETScript libcurl nativefiledialog ${GTK3_LIBRARIES})
+    target_link_libraries(${CEF_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS})
 
 else()
     target_link_libraries(AtomicEditor NETCore NETScript libcurl Iphlpapi Wldap32)

+ 20 - 0
Source/AtomicEditor/Windows/AtomicEditor.exe.manifest

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+
+  <!--The compatibility section will be merged from build/win/compatibility.manifest -->
+
+  <dependency>
+    <dependentAssembly>
+      <assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
+    </dependentAssembly>
+  </dependency>
+
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+    <security>
+      <requestedPrivileges>
+        <requestedExecutionLevel level="asInvoker" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+
+</assembly>

+ 17 - 0
Source/AtomicEditor/Windows/compatibility.manifest

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!--The ID below indicates application support for Windows Vista -->
+      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
+      <!--The ID below indicates application support for Windows 7 -->
+      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+      <!--The ID below indicates application support for Windows 8 -->
+      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+      <!--The ID below indicates application support for Windows 8.1 -->
+      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+      <!--The ID below indicates application support for Windows 10 -->
+      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+    </application>
+  </compatibility>
+</assembly>

+ 3 - 3
Source/AtomicPlayer/Application/CMakeLists.txt

@@ -18,9 +18,9 @@ elseif(APPLE)
     #ICNS
     set(MACOSX_BUNDLE_ICON_FILE Atomic.icns)
 if (NOT IOS)
-    set(ATOMIC_EDITOR_ICON ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.icns)
+    set(ATOMIC_PLAYER_ICON ${CMAKE_SOURCE_DIR}/Build/CMake/Modules/Atomic.icns)
 endif()
-    set_source_files_properties(${ATOMIC_EDITOR_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
+    set_source_files_properties(${ATOMIC_PLAYER_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
     set (EXE_TYPE MACOSX_BUNDLE)
 endif()
 
@@ -28,7 +28,7 @@ if (ANDROID)
 	include_directories(${CMAKE_SOURCE_DIR}/Source/ThirdParty/SDL/include)
 	add_library(AtomicPlayer SHARED ${SOURCE_FILES} ${CMAKE_SOURCE_DIR}/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c)
 else()
-	add_executable(AtomicPlayer ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
+	add_executable(AtomicPlayer ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_PLAYER_ICON})
 endif()
 
 target_link_libraries(AtomicPlayer AtomicJS AtomicPlayerLib AtomicPlayerJS ${ATOMIC_LINK_LIBRARIES})

+ 0 - 2
Source/AtomicWebView/Internal/WebMain.cpp

@@ -27,8 +27,6 @@
 namespace Atomic
 {
 
-using namespace Atomic;
-
 int WebMain(int argc, char* argv[])
 {
 

+ 1 - 1
Source/CMakeLists.txt

@@ -20,4 +20,4 @@ if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
     add_subdirectory(AtomicNET)
 endif()
 
-include(AtomicDocList)
+include(AtomicDocList)

+ 1 - 1
Submodules/CEF

@@ -1 +1 @@
-Subproject commit a74fdafc2f42f4349d777e1a1fb20f63e848da23
+Subproject commit b42112858d01ba545a95757d60c2206c78294923