message: Update top CMakeList
  Contains code to automatically create the `data` folder within the SEGS output directory. On Windows, it will also copy over required DLL files to the output directory.
  TODO: Identify the DLL files required by the Visual Studio version of Qt and implement their automatic transfer as well.
diff: @@ -14,6 +14,7 @@ add_definitions(-D__STDC_FORMAT_MACROS)
  SET(MAIN_INCLUDE_PATH ${PROJECT_SOURCE_DIR}/3rd_party/include CACHE PATH "Includes")
  SET(MAIN_LIB_PATH ${PROJECT_SOURCE_DIR}/3rd_party/lib CACHE PATH "Libraries")
  SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/out)
  +SET(LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/out)
  SET(CMAKE_INCLUDE_PATH ${MAIN_INCLUDE_PATH})
  SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeScripts;${CMAKE_MODULE_PATH})
  @@ -29,8 +30,8 @@ OPTION(BUILD_COX_MAP_VIEWER "Build CoX map file viewer ?" OFF)
  include(3rdparty_support)
  set(ThirdParty_Install_Dir ${CMAKE_CURRENT_BINARY_DIR}/3rd_party/built)
  add_subdirectory(3rd_party)
  -add_definitions(-DACE_HAS_DLL=1) #FIXME: this should be set by per-target add_definitions
  -LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/lib)
  +add_definitions(-DACE_HAS_DLL=1) # TODO: this should be set by per-target add_definitions
  +link_directories(${PROJECT_SOURCE_DIR}/lib) # ERICEDIT: Changed to lowercase.
  find_package(Threads REQUIRED)
  find_package(Qt5 COMPONENTS Core Sql REQUIRED)
  @@ -44,3 +45,27 @@ include_directories(Components)
  add_subdirectory(Components)
  add_subdirectory(Utilities)
  add_subdirectory(Projects)
  +add_subdirectory(dummy_folders) # ERICEDIT: This is my solution to automatically creating the data folder. A bit messy, but it works.
  +add_subdirectory(${PROJECT_SOURCE_DIR}/dummy_folders/data ${PROJECT_SOURCE_DIR}/out) # ERICEDIT: This could also be used for other folders we need to create.
  +
  +########################################################################################
  +# DLL Transfers
  +########################################################################################
  +if(WIN32) # ERICEDIT: If the OS is Windows:
  + file(COPY ${ThirdParty_Install_Dir}/lib/libACE.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH}) # ERICEDIT: ACE needed for authserver.
  + if(MSVC) # ERICEDIT: If this is the Visual Studio version of Qt:
  + # TODO: Copy the DLL files required for Visual Studio versions of the client.
  + else() # ERICEDIT: Else, this is Qt creator. Copy these DLLs.
  + get_target_property(QtCore_location_Release Qt5::Core LOCATION_Release) # ERICEDIT: Get the direct location of Qt5Core.dll.
  + get_filename_component(Qt_binary_location ${QtCore_location_Release} DIRECTORY) # ERICEDIT: Remove the file name and let the directory remain.
  + file(COPY ${Qt_binary_location}/libgcc_s_dw2-1.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + file(COPY ${Qt_binary_location}/libstdc++-6.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + file(COPY ${Qt_binary_location}/libwinpthread-1.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + file(COPY ${QtCore_location_Release} DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + file(COPY ${Qt_binary_location}/Qt5Gui.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + file(COPY ${Qt_binary_location}/Qt5Network.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + file(COPY ${Qt_binary_location}/Qt5Sql.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + file(COPY ${Qt_binary_location}/Qt5Widgets.dll DESTINATION ${EXECUTABLE_OUTPUT_PATH})
  + endif()
  +endif()
  +
  