Browse Source

cmake improvements: correct build folder without installing, merged luis resource copy fix. fixed usage of the app name. added source folder to build configuration

Thomas Fischer 11 năm trước cách đây
mục cha
commit
5ffe7abee9
2 tập tin đã thay đổi với 40 bổ sung14 xóa
  1. 18 9
      Tools/CMake/basics.cmake
  2. 22 5
      Tools/CMake/torque3d.cmake

+ 18 - 9
Tools/CMake/basics.cmake

@@ -2,17 +2,18 @@ project("Torque3DEngine")
 
 set(TORQUE_TEMPLATE "Empty" CACHE STRING "the template to use")
 
-set(projectOutDir "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_TEMPLATE}")
-set(projectSrcDir "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_TEMPLATE}/source")
-set(libDir "${CMAKE_SOURCE_DIR}/Engine/lib")
-set(srcDir "${CMAKE_SOURCE_DIR}/Engine/source")
-set(cmakeDir "${CMAKE_SOURCE_DIR}/Tools/CMake")
+set(projectOutDir "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_APP_NAME}")
+set(projectSrcDir "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_APP_NAME}/source")
+set(libDir        "${CMAKE_SOURCE_DIR}/Engine/lib")
+set(srcDir        "${CMAKE_SOURCE_DIR}/Engine/source")
+set(cmakeDir      "${CMAKE_SOURCE_DIR}/Tools/CMake")
 
 # output folders
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${projectOutDir}/bin)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${projectOutDir}/bin)
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${projectOutDir}/bin)
+#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${projectOutDir}/bin)
+#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${projectOutDir}/bin)
+#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${projectOutDir}/bin)
 
+# change the default installation path to My Projects/app name
 SET(CMAKE_INSTALL_PREFIX "${projectOutDir}" CACHE INTERNAL "Prefix prepended to install directories" FORCE)
 
 # finds and adds sources files in a folder
@@ -156,4 +157,12 @@ if(WIN32)
 endif()
 
 
-
+# fix the debug/release subfolders on windows
+if(MSVC)
+	FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES})
+		# Go uppercase (DEBUG, RELEASE...)
+		STRING(TOUPPER "${CONF}" CONF)
+		#SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}")
+		SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}")
+	ENDFOREACH()
+endif()

+ 22 - 5
Tools/CMake/torque3d.cmake

@@ -139,6 +139,7 @@ addPath("${srcDir}/T3D/turret")
 addPath("${srcDir}/main/")
 addPathRec("${srcDir}/ts/collada")
 addPathRec("${srcDir}/ts/loader")
+addFile("${projectSrcDir}")
 
 ###############################################################################
 # modular paths
@@ -213,7 +214,7 @@ if(WIN32)
     addPath("${srcDir}/terrain/hlsl")
     addPath("${srcDir}/forest/hlsl")
     # add windows rc file for the icon
-    addFile("${projectSrcDir}/torque-win.rc")
+    addFile("${projectSrcDir}/torque.rc")
 endif()
 
 if(APPLE)
@@ -279,18 +280,34 @@ addExecutable()
 ###############################################################################
 ###############################################################################
 
-# configure only once
+# configure file relevant files only once
 if(NOT EXISTS ${projectSrcDir}/torqueConfig.h)
     message(STATUS "writing ${projectSrcDir}/torqueConfig.h")
     CONFIGURE_FILE(${cmakeDir}/torqueConfig.h.in ${projectSrcDir}/torqueConfig.h)
-    CONFIGURE_FILE(${cmakeDir}/torque-win.rc.in ${projectSrcDir}/torque-win.rc)
+endif()
+if(NOT EXISTS ${projectSrcDir}/torque.ico)
     CONFIGURE_FILE(${cmakeDir}/torque.ico ${projectSrcDir}/torque.ico COPYONLY)
 endif()
+if(WIN32)
+	if(NOT EXISTS ${projectSrcDir}/torque.rc)
+		CONFIGURE_FILE(${cmakeDir}/torque-win.rc.in ${projectSrcDir}/torque.rc)
+	endif()
+endif()
 
 ###############################################################################
 # Common Libraries
 ###############################################################################
-addLib("lmng;lpng;lungif;ljpeg;zlib;tinyxml;opcode;squish;collada;pcre;convexDecomp")
+addLib(lmng)
+addLib(lpng)
+addLib(lungif)
+addLib(ljpeg)
+addLib(zlib)
+addLib(tinyxml)
+addLib(opcode)
+addLib(squish)
+addLib(collada)
+addLib(pcre)
+addLib(convexDecomp)
 
 if(WIN32)
     # copy pasted from T3D build system, some might not be needed
@@ -384,5 +401,5 @@ endif()
 ###############################################################################
 # Installation
 ###############################################################################
-INSTALL_TARGETS(/ torque3d)
+#INSTALL_TARGETS(/ torque3d) # not needed anymore as we should directly build in there
 INSTALL_FILES(/ FILES ${CMAKE_SOURCE_DIR}/Templates/${TORQUE_TEMPLATE}/game/)