Bläddra i källkod

Revert CMakeLists.txt to a working state

Daniele Bartolini 11 år sedan
förälder
incheckning
e96b815a4b
2 ändrade filer med 204 tillägg och 195 borttagningar
  1. 54 22
      CMakeLists.txt
  2. 150 173
      engine/CMakeLists.txt

+ 54 - 22
CMakeLists.txt

@@ -9,34 +9,64 @@ set (CROWN_VERSION_MICRO 13)
 option (CROWN_BUILD_SAMPLES "Whether to build the samples" ON)
 option (CROWN_BUILD_TOOLS "Whether to build the tools" ON)
 option (CROWN_BUILD_TESTS "Whether to build unit tests" ON)
-#option (CROWN_BUILD_DOC "Whether to build docs" OFF)
+option (CROWN_BUILD_DOC "Whether to build docs" ON)
 
 # build configuration variables
-if (CROWN_PLATFORM MATCHES "linux32")
+if (CROWN_BUILD MATCHES "linux-debug-32")
 	set (LINUX 1)
+	set (CROWN_DEBUG 1)
 	set (CROWN_ARCH "x86")
-elseif (CROWN_PLATFORM MATCHES "linux64")
+elseif (CROWN_BUILD MATCHES "linux-development-32")
 	set (LINUX 1)
+	set (CROWN_DEVELOPMENT 1)
+	set (CROWN_ARCH "x86")
+elseif (CROWN_BUILD MATCHES "linux-release-32")
+	set (LINUX 1)
+	set (CROWN_RELEASE 1)
+	set (CROWN_ARCH "x86")
+elseif (CROWN_BUILD MATCHES "linux-debug-64")
+	set (LINUX 1)
+	set (CROWN_DEBUG 1)
 	set (CROWN_ARCH "x86_64")
-elseif (CROWN_PLATFORM MATCHES "windows32")
+elseif (CROWN_BUILD MATCHES "linux-development-64")
+	set (LINUX 1)
+	set (CROWN_DEVELOPMENT 1)
+	set (CROWN_ARCH "x86_64")
+elseif (CROWN_BUILD MATCHES "linux-release-64")
+	set (LINUX 1)
+	set (CROWN_RELEASE 1)
+	set (CROWN_ARCH "x86_64")
+elseif (CROWN_BUILD MATCHES "windows-debug-32")
+	set (WINDOWS 1)
+	set (CROWN_DEBUG 1)
+	set (CROWN_ARCH "win32")
+elseif (CROWN_BUILD MATCHES "windows-development-32")
+	set (WINDOWS 1)
+	set (CROWN_DEVELOPMENT 1)
+	set (CROWN_ARCH "win32")
+elseif (CROWN_BUILD MATCHES "windows-release-32")
 	set (WINDOWS 1)
+	set (CROWN_RELEASE 1)
 	set (CROWN_ARCH "win32")
-elseif (CROWN_PLATFORM MATCHES "windows64")
+elseif (CROWN_BUILD MATCHES "windows-debug-64")
+	set (WINDOWS 1)
+	set (CROWN_DEBUG 1)
+	set (CROWN_ARCH "win64")
+elseif (CROWN_BUILD MATCHES "windows-development-64")
 	set (WINDOWS 1)
+	set (CROWN_DEVELOPMENT 1)
+	set (CROWN_ARCH "win64")
+elseif (CROWN_BUILD MATCHES "windows-release-64")
+	set (WINDOWS 1)
+	set (CROWN_RELEASE 1)
 	set (CROWN_ARCH "win64")
 else ()
 	message (FATAL_ERROR "Wrong build configuration")
-endif (CROWN_PLATFORM MATCHES "linux32")
+endif (CROWN_BUILD MATCHES "linux-debug-32")
 
 # executable name
-set (CROWN_EXECUTABLE_DEBUG crown-debug-${CROWN_PLATFORM})
-set (CROWN_EXECUTABLE_DEVELOPMENT crown-development-${CROWN_PLATFORM})
-set (CROWN_EXECUTABLE_RELEASE crown-release-${CROWN_PLATFORM})
-
-set (CROWN_LIBRARY_DEBUG crown-lib-debug-${CROWN_PLATFORM})
-set (CROWN_LIBRARY_DEVELOPMENT crown-lib-development-${CROWN_PLATFORM})
-set (CROWN_LIBRARY_RELEASE crown-lib-release-${CROWN_PLATFORM})
-
+set (CROWN_EXECUTABLE_NAME crown-${CROWN_BUILD})
+set (CROWN_LIBRARY_NAME crown-lib-${CROWN_BUILD})
 
 # architecture dependent includes
 set (CROWN_THIRD_INCLUDES
@@ -87,11 +117,13 @@ if (CROWN_BUILD_SAMPLES)
 endif (CROWN_BUILD_SAMPLES)
 
 # add a target to generate API documentation with Doxygen
-find_package(Doxygen)
-if(DOXYGEN_FOUND)
-	add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
-		WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-		COMMENT "Generating API documentation with Doxygen" VERBATIM)
-	configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
-endif(DOXYGEN_FOUND)
-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/documentation/html DESTINATION documentation)
+if (CROWN_BUILD_DOC)
+  find_package(Doxygen)
+  if(DOXYGEN_FOUND)
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+    add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+              WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+              COMMENT "Generating API documentation with Doxygen" VERBATIM)
+    install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/documentation/html DESTINATION documentation)
+  endif(DOXYGEN_FOUND)
+endif (CROWN_BUILD_DOC)

+ 150 - 173
engine/CMakeLists.txt

@@ -354,14 +354,6 @@ set (COMPILER_HEADER
 )
 
 set (CROWN_LIBRARIES)
-set (CROWN_DEBUG_LIBRARIES)
-set (CROWN_DEVELOPMENT_LIBRARIES)
-set (CROWN_RELEASE_LIBRARIES)
-
-set (COMPILER_FLAGS)
-set (COMPILER_DEBUG_FLAGS)
-set (COMPILER_DEVELOPMENT_FLAGS)
-set (COMPILER_RELEASE_FLAGS)
 
 # Platform specific stuff
 if (LINUX)
@@ -416,7 +408,7 @@ if (LINUX)
 		#-pedantic-errors
 		-Wall
 		-Wextra
-		#-Werror
+		-Werror
 		-Wno-long-long
 		-Wno-variadic-macros
 		-Wno-unknown-pragmas
@@ -428,64 +420,65 @@ if (LINUX)
 		-fno-rtti
 	)
 
-	list (APPEND COMPILER_DEBUG_FLAGS -g -D_DEBUG)
-
-	list (APPEND CROWN_DEBUG_LIBRARIES
-		LowLevelCHECKED
-		LowLevelClothCHECKED
-		PhysX3CharacterKinematicCHECKED
-		PhysX3CHECKED
-		PhysX3CommonCHECKED
-		PhysX3CookingCHECKED
-		PhysX3ExtensionsCHECKED
-		PhysXProfileSDKCHECKED
-		PhysXVisualDebuggerSDKCHECKED
-		PvdRuntimeCHECKED
-		PxTaskCHECKED
-		SceneQueryCHECKED
-		SimulationControllerCHECKED
-	)
-
-	##### FIXME FIXME FIXME: replace -O0 with -O2 #####
-	list (APPEND COMPILER_DEVELOPMENT_FLAGS -O0 -DNDEBUG)
-	
-	list (APPEND CROWN_DEVELOPMENT_LIBRARIES
-		LowLevelPROFILE
-		LowLevelClothPROFILE
-		PhysX3CharacterKinematicPROFILE
-		PhysX3PROFILE
-		PhysX3CommonPROFILE
-		PhysX3CookingPROFILE
-		PhysX3ExtensionsPROFILE
-		PhysXProfileSDKPROFILE
-		PhysXVisualDebuggerSDKPROFILE
-		PvdRuntimePROFILE
-		PxTaskPROFILE
-		SceneQueryPROFILE
-		SimulationControllerPROFILE
-	)
-		
-	list (APPEND COMPILER_RELEASE_FLAGS
-		-DNDEBUG
-		-O0			##### FIXME FIXME FIXME: replace -O0 with -O2 #####
-		-Wno-maybe-uninitialized
-		-Wno-unused-but-set-variable
-	)
-	list (APPEND CROWN_RELEASE_LIBRARIES
-		LowLevel
-		LowLevelCloth
-		PhysX3CharacterKinematic
-		PhysX3
-		PhysX3Common
-		PhysX3Cooking
-		PhysX3Extensions
-		PhysXProfileSDK
-		PhysXVisualDebuggerSDK
-		PvdRuntime
-		PxTask
-		SceneQuery
-		SimulationController
-	)
+	if (CROWN_DEBUG)
+		list (APPEND COMPILER_FLAGS -g -D_DEBUG)
+		list (APPEND CROWN_LIBRARIES
+			LowLevelCHECKED
+			LowLevelClothCHECKED
+			PhysX3CharacterKinematicCHECKED
+			PhysX3CHECKED
+			PhysX3CommonCHECKED
+			PhysX3CookingCHECKED
+			PhysX3ExtensionsCHECKED
+			PhysXProfileSDKCHECKED
+			PhysXVisualDebuggerSDKCHECKED
+			PvdRuntimeCHECKED
+			PxTaskCHECKED
+			SceneQueryCHECKED
+			SimulationControllerCHECKED
+		)
+	elseif (CROWN_DEVELOPMENT)
+		list (APPEND COMPILER_FLAGS -O2 -DNDEBUG)
+		list (APPEND CROWN_LIBRARIES
+			LowLevelPROFILE
+			LowLevelClothPROFILE
+			PhysX3CharacterKinematicPROFILE
+			PhysX3PROFILE
+			PhysX3CommonPROFILE
+			PhysX3CookingPROFILE
+			PhysX3ExtensionsPROFILE
+			PhysXProfileSDKPROFILE
+			PhysXVisualDebuggerSDKPROFILE
+			PvdRuntimePROFILE
+			PxTaskPROFILE
+			SceneQueryPROFILE
+			SimulationControllerPROFILE
+		)
+	elseif (CROWN_RELEASE)
+		list (APPEND COMPILER_FLAGS
+			-DNDEBUG
+			-O2
+			-Wno-maybe-uninitialized
+			-Wno-unused-but-set-variable
+		)
+		list (APPEND CROWN_LIBRARIES
+			LowLevel
+			LowLevelCloth
+			PhysX3CharacterKinematic
+			PhysX3
+			PhysX3Common
+			PhysX3Cooking
+			PhysX3Extensions
+			PhysXProfileSDK
+			PhysXVisualDebuggerSDK
+			PvdRuntime
+			PxTask
+			SceneQuery
+			SimulationController
+		)
+	else ()
+		message (FATAL_ERROR "Oops, you should not be here")
+	endif (CROWN_DEBUG)
 
 	set (CROWN_MAIN_SRC os/linux/main.cpp)
 endif (LINUX)
@@ -542,57 +535,69 @@ if (WINDOWS)
 		set (WIN_PHYSXARCH x86)
 	elseif (CROWN_ARCH MATCHES "win64")
 		set (WIN_PHYSXARCH x64)
-	else ()
-    	message (FATAL_ERROR "Oops, you should not be here")
+  else ()
+    message (FATAL_ERROR "Oops, you should not be here")
 	endif (CROWN_ARCH MATCHES "win32")
 
-	list (APPEND CROWN_DEBUG_LIBRARIES
-		#LowLevelCHECKED
-		#LowLevelClothCHECKED
-		PhysX3CharacterKinematicCHECKED_${WIN_PHYSXARCH}
-		PhysX3CHECKED_${WIN_PHYSXARCH}
-		PhysX3CommonCHECKED_${WIN_PHYSXARCH}
-		PhysX3CookingCHECKED_${WIN_PHYSXARCH}
-		PhysX3ExtensionsCHECKED
-		PhysXProfileSDKCHECKED
-		PhysXVisualDebuggerSDKCHECKED
-		#PvdRuntimeCHECKED
-		PxTaskCHECKED
-		#SceneQueryCHECKED
-		#SimulationControllerCHECKED
-	)
-
-	list (APPEND CROWN_DEVELOPMENT_LIBRARIES
-		#LowLevelPROFILE
-		#LowLevelClothPROFILE
-		PhysX3CharacterKinematicPROFILE_${WIN_PHYSXARCH}
-		PhysX3PROFILE_${WIN_PHYSXARCH}
-		PhysX3CommonPROFILE_${WIN_PHYSXARCH}
-		PhysX3CookingPROFILE_${WIN_PHYSXARCH}
-		PhysX3ExtensionsPROFILE
-		PhysXProfileSDKPROFILE
-		PhysXVisualDebuggerSDKPROFILE
-		#PvdRuntimePROFILE
-		PxTaskPROFILE
-		#SceneQueryPROFILE
-		#SimulationControllerPROFILE
-	)
-
-	list (APPEND CROWN_RELEASE_LIBRARIES
-		#LowLevel
-		#LowLevelCloth
-		PhysX3CharacterKinematic_${WIN_PHYSXARCH}
-		PhysX3_${WIN_PHYSXARCH}
-		PhysX3Common_${WIN_PHYSXARCH}
-		PhysX3Cooking_${WIN_PHYSXARCH}
-		PhysX3Extensions
-		PhysXProfileSDK
-		PhysXVisualDebuggerSDK
-		#PvdRuntime
-		PxTask
-		#SceneQuery
-		#SimulationController
-	)
+	if (CROWN_DEBUG)
+		#list (APPEND COMPILER_FLAGS -g -D_DEBUG)
+		list (APPEND CROWN_LIBRARIES
+			#LowLevelCHECKED
+			#LowLevelClothCHECKED
+			PhysX3CharacterKinematicCHECKED_${WIN_PHYSXARCH}
+			PhysX3CHECKED_${WIN_PHYSXARCH}
+			PhysX3CommonCHECKED_${WIN_PHYSXARCH}
+			PhysX3CookingCHECKED_${WIN_PHYSXARCH}
+			PhysX3ExtensionsCHECKED
+			PhysXProfileSDKCHECKED
+			PhysXVisualDebuggerSDKCHECKED
+			#PvdRuntimeCHECKED
+			PxTaskCHECKED
+			#SceneQueryCHECKED
+			#SimulationControllerCHECKED
+		)
+	elseif (CROWN_DEVELOPMENT)
+		#list (APPEND COMPILER_FLAGS -O2 -DNDEBUG)
+		list (APPEND CROWN_LIBRARIES
+			#LowLevelPROFILE
+			#LowLevelClothPROFILE
+			PhysX3CharacterKinematicPROFILE_${WIN_PHYSXARCH}
+			PhysX3PROFILE_${WIN_PHYSXARCH}
+			PhysX3CommonPROFILE_${WIN_PHYSXARCH}
+			PhysX3CookingPROFILE_${WIN_PHYSXARCH}
+			PhysX3ExtensionsPROFILE
+			PhysXProfileSDKPROFILE
+			PhysXVisualDebuggerSDKPROFILE
+			#PvdRuntimePROFILE
+			PxTaskPROFILE
+			#SceneQueryPROFILE
+			#SimulationControllerPROFILE
+		)
+	elseif (CROWN_RELEASE)
+		list (APPEND COMPILER_FLAGS
+			#-DNDEBUG
+			#-O2
+			#-Wno-maybe-uninitialized
+			#-Wno-unused-but-set-variable
+		)
+		list (APPEND CROWN_LIBRARIES
+			#LowLevel
+			#LowLevelCloth
+			PhysX3CharacterKinematic_${WIN_PHYSXARCH}
+			PhysX3_${WIN_PHYSXARCH}
+			PhysX3Common_${WIN_PHYSXARCH}
+			PhysX3Cooking_${WIN_PHYSXARCH}
+			PhysX3Extensions
+			PhysXProfileSDK
+			PhysXVisualDebuggerSDK
+			#PvdRuntime
+			PxTask
+			#SceneQuery
+			#SimulationController
+		)
+	else ()
+		message (FATAL_ERROR "Oops, you should not be here")
+	endif (CROWN_DEBUG)
 
 	set (CROWN_MAIN_SRC os/win/main.cpp)
 endif(WINDOWS)
@@ -644,64 +649,36 @@ set (CROWN_HEADERS
 )
 
 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/Config.h)
-link_directories(${CROWN_THIRD_LIBS})
-
-# Debug target 
-add_library (${CROWN_LIBRARY_DEBUG} SHARED ${CROWN_SOURCES} ${CROWN_HEADERS})
-set_target_properties (${CROWN_LIBRARY_DEBUG} PROPERTIES OUTPUT_NAME ${CROWN_LIBRARY_DEBUG})
-target_compile_options(${CROWN_LIBRARY_DEBUG} PUBLIC ${COMPILER_FLAGS} ${COMPILER_DEBUG_FLAGS})
-target_include_directories (${CROWN_LIBRARY_DEBUG} PUBLIC ${CROWN_INCLUDES} ${CROWN_THIRD_INCLUDES})
-target_link_libraries (${CROWN_LIBRARY_DEBUG} PUBLIC ${CROWN_LIBRARIES} ${CROWN_DEBUG_LIBRARIES})
-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN")
-add_executable(${CROWN_EXECUTABLE_DEBUG} ${CROWN_MAIN_SRC})
-target_link_libraries(${CROWN_EXECUTABLE_DEBUG} ${CROWN_LIBRARY_DEBUG})
-
-# Development target
-add_library (${CROWN_LIBRARY_DEVELOPMENT} SHARED ${CROWN_SOURCES} ${CROWN_HEADERS})
-set_target_properties (${CROWN_LIBRARY_DEVELOPMENT} PROPERTIES OUTPUT_NAME ${CROWN_LIBRARY_DEVELOPMENT})
-target_compile_options(${CROWN_LIBRARY_DEVELOPMENT} PUBLIC ${COMPILER_FLAGS} ${COMPILER_DEVELOPMENT_FLAGS})
-target_include_directories (${CROWN_LIBRARY_DEVELOPMENT} PUBLIC ${CROWN_INCLUDES} ${CROWN_THIRD_INCLUDES})
-target_link_libraries (${CROWN_LIBRARY_DEVELOPMENT} PUBLIC ${CROWN_LIBRARIES} ${CROWN_DEVELOPMENT_LIBRARIES})
-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN")
-add_executable(${CROWN_EXECUTABLE_DEVELOPMENT} ${CROWN_MAIN_SRC})
-target_link_libraries(${CROWN_EXECUTABLE_DEVELOPMENT} ${CROWN_LIBRARY_DEVELOPMENT})
-
-# Release target
-add_library (${CROWN_LIBRARY_RELEASE} SHARED ${CROWN_SOURCES} ${CROWN_HEADERS})
-set_target_properties (${CROWN_LIBRARY_RELEASE} PROPERTIES OUTPUT_NAME ${CROWN_LIBRARY_RELEASE})
-target_compile_options(${CROWN_LIBRARY_RELEASE} PUBLIC ${COMPILER_FLAGS} ${COMPILER_RELEASE_FLAGS})
-target_include_directories (${CROWN_LIBRARY_RELEASE} PUBLIC ${CROWN_INCLUDES} ${CROWN_THIRD_INCLUDES})
-target_link_libraries (${CROWN_LIBRARY_RELEASE} PUBLIC ${CROWN_LIBRARIES} ${CROWN_RELEASE_LIBRARIES})
-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN")
-add_executable(${CROWN_EXECUTABLE_RELEASE} ${CROWN_MAIN_SRC})
-target_link_libraries(${CROWN_EXECUTABLE_RELEASE} ${CROWN_LIBRARY_RELEASE})
-
-# Install executables
-install (TARGETS ${CROWN_LIBRARY_DEBUG} DESTINATION bin)
-install (TARGETS ${CROWN_EXECUTABLE_DEBUG} DESTINATION bin)
-install (TARGETS ${CROWN_LIBRARY_DEVELOPMENT} DESTINATION bin)
-install (TARGETS ${CROWN_EXECUTABLE_DEVELOPMENT} DESTINATION bin)
-install (TARGETS ${CROWN_LIBRARY_RELEASE} DESTINATION bin)
-install (TARGETS ${CROWN_EXECUTABLE_RELEASE} DESTINATION bin)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
+include_directories(${CROWN_INCLUDES} ${CROWN_THIRD_INCLUDES})
+link_directories(${CROWN_THIRD_LIBS})
+link_libraries(${CROWN_LIBRARIES})
 
+add_definitions(${COMPILER_FLAGS})
 
+add_library(crown-lib SHARED ${CROWN_SOURCES} ${CROWN_HEADERS})
+set_target_properties (crown-lib PROPERTIES OUTPUT_NAME ${CROWN_LIBRARY_NAME})
 
+set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:$ORIGIN")
+add_executable(${CROWN_EXECUTABLE_NAME} ${CROWN_MAIN_SRC})
+target_link_libraries(${CROWN_EXECUTABLE_NAME} crown-lib)
+
+install (TARGETS crown-lib DESTINATION bin)
+install (TARGETS ${CROWN_EXECUTABLE_NAME} DESTINATION bin)
+
+#install (FILES ${HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME})
+
+#install (FILES ${CORE_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core)
+#install (FILES ${BV_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/bv)
+#install (FILES ${CONTAINERS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/containers)
+#install (FILES ${MATH_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/math)
+#install (FILES ${FILESYSTEM_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/filesystem)
+#install (FILES ${MEM_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/mem)
+#install (FILES ${COMPRESSORS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/compressors)
+#install (FILES ${THREADS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/threads)
+#install (FILES ${SETTINGS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/settings)
+#
+#install (FILES ${INPUT_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/input)
+#install (FILES ${RENDERERS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/renderers)
+#install (FILES ${OS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/os)
+#install (FILES ${LUA_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/lua)