Prechádzať zdrojové kódy

Some build system changes

Panagiotis Christopoulos Charitos 9 rokov pred
rodič
commit
f1d92003b6

+ 15 - 6
CMakeLists.txt

@@ -71,18 +71,19 @@ endif()
 # Take a wild guess on the windowing system
 if(LINUX)
 	set(_WIN_BACKEND "SDL")
+	set(SDL TRUE)
 elseif(WINDOWS)
 	set(_WIN_BACKEND "SDL")
+	set(SDL TRUE)
 elseif(ANDROID)
 	set(_WIN_BACKEND "ANDROID")
 elseif(MACOS)
 	set(_WIN_BACKEND "SDL")
+	set(SDL TRUE)
 else()
 	message(FATAL_ERROR "Couldn't determine the window backend. You need to specify it manually")
 endif()
 
-set(ANKI_WINDOW_BACKEND "${_WIN_BACKEND}" CACHE STRING "The window backend (GLXX11 or EGLX11 or EGLFBDEV or ANDROID or SDL or DUMMY)")
-
 # Extra directories
 set(ANKI_EXTRA_INCLUDE_DIRS CACHE STRING "Some extra include paths (Needed for some weird builds)")
 set(ANKI_EXTRA_LIB_DIRS CACHE STRING "Some extra lib paths (Needed for some weird builds)")
@@ -215,7 +216,7 @@ if(ANKI_BUILD_TOOLS)
 endif()
 
 # SDL
-if(${ANKI_WINDOW_BACKEND} STREQUAL "SDL")
+if(SDL)
 	ExternalProject_Add(
 		SDL2_PROJECT
 		DOWNLOAD_COMMAND ""
@@ -335,7 +336,7 @@ if(LINUX)
 		set(_SYS ${ANKI_GR_BACKEND} ankiglew)
 	else()
 		set(_SYS vulkan)
-		if(${ANKI_WINDOW_BACKEND} STREQUAL "SDL")
+		if(SDL)
 			set(_SYS ${_SYS} X11-xcb)	
 		else()
 			message(FATAL_ERROR "Unhandled case")
@@ -358,7 +359,7 @@ else()
 	message(FATAL_ERROR "Unhandled case")
 endif()
 
-if(${ANKI_WINDOW_BACKEND} STREQUAL "SDL")
+if(SDL)
 	link_directories(${SDL2_INSTALL_DIR}/lib)
 endif()
 
@@ -374,9 +375,17 @@ foreach(TMP ${ANKI_SUB_DIRS})
 endforeach()
 
 add_library(anki src/Dummy.cpp "${_SYS_SRC}")
-add_dependencies(anki SDL2_LIB FREETYPE_LIB GLSLANG_LIB)
+
 target_link_libraries(anki ${ANKI_LIBS} ankitinyxml2 ankilua ankiz ankinewton ${ANKI_GPERFTOOLS_LIBS} SDL2_LIB FREETYPE_LIB ${_SYS})
 
+if(VULKAN)
+	target_link_libraries(anki GLSLANG_LIB)
+endif()
+
+if(SDL)
+	target_link_libraries(anki SDL2_LIB)
+endif()
+
 ################################################################################
 # AnKi extra                                                                   #
 ################################################################################

+ 7 - 12
src/core/CMakeLists.txt

@@ -1,20 +1,15 @@
 set(ANKI_CORE_SOURCES App.cpp StdinListener.cpp Config.cpp Trace.cpp)
 
-if(${ANKI_WINDOW_BACKEND} STREQUAL "GLXX11")
-	set(ANKI_CORE_SOURCES ${ANKI_CORE_SOURCES} NativeWindowGlxX11.cpp)
-elseif(${ANKI_WINDOW_BACKEND} STREQUAL "EGLX11")
-	set(ANKI_CORE_SOURCES ${ANKI_CORE_SOURCES} NativeWindowEglX11.cpp)
-elseif(${ANKI_WINDOW_BACKEND} STREQUAL "EGLFBDEV")
-	set(ANKI_CORE_SOURCES ${ANKI_CORE_SOURCES} NativeWindowEglFbdev.cpp)
-elseif(${ANKI_WINDOW_BACKEND} STREQUAL "ANDROID")
-	set(ANKI_CORE_SOURCES ${ANKI_CORE_SOURCES} NativeWindowAndroid.cpp)
-elseif(${ANKI_WINDOW_BACKEND} STREQUAL "SDL")
+if(SDL)
 	set(ANKI_CORE_SOURCES ${ANKI_CORE_SOURCES} NativeWindowSdl.cpp)
-elseif(${ANKI_WINDOW_BACKEND} STREQUAL "DUMMY")
-	set(ANKI_CORE_SOURCES ${ANKI_CORE_SOURCES} NativeWindowDummy.cpp)
 else()
-	message(FATAL_ERROR "Unrecognized ANKI_WINDOW_BACKEND: ${ANKI_WINDOW_BACKEND}")
+	message(FATAL_ERROR "Not implemented")
 endif()
 
 add_library(ankicore ${ANKI_CORE_SOURCES})
+
 target_link_libraries(ankicore ankiscript ankirenderer ankiscene ankiresource ankiinput ankimisc ankiutil)
+
+if(SDL)
+	target_link_libraries(ankicore SDL2_LIB)
+endif()

+ 2 - 3
src/gr/CMakeLists.txt

@@ -1,6 +1,5 @@
 file(GLOB ANKI_GR_SOURCES *.cpp common/*.cpp)
 
-
 if(GL)
 	set(GR_BACKEND "gl")
 else()
@@ -10,11 +9,11 @@ endif()
 file(GLOB ANKI_GR_BACKEND_SOURCES ${GR_BACKEND}/*.cpp)
 list(REMOVE_ITEM ANKI_GR_BACKEND_SOURCES "${GR_BACKEND}/GrManagerImplSdl.cpp")
 
-if(${ANKI_WINDOW_BACKEND} STREQUAL "SDL")
+if(SDL)
 	set(ANKI_GR_BACKEND_SOURCES ${ANKI_GR_BACKEND_SOURCES} "${GR_BACKEND}/GrManagerImplSdl.cpp")
 else()
 	message(FATAL "Missing backend")
 endif()
 
 add_library(ankigr ${ANKI_GR_SOURCES} ${ANKI_GR_BACKEND_SOURCES})
-target_link_libraries(ankigr ankiutil)
+target_link_libraries(ankigr ankiutil ankicore)

+ 2 - 9
src/input/CMakeLists.txt

@@ -1,17 +1,10 @@
 file(GLOB ANKI_INPUT_SOURCES Input.cpp)
 
-if(${ANKI_WINDOW_BACKEND} STREQUAL "GLXX11" OR ${ANKI_WINDOW_BACKEND} STREQUAL "EGLX11")
-	set(ANKI_INPUT_SOURCES ${ANKI_INPUT_SOURCES} InputX11.cpp)
-elseif(${ANKI_WINDOW_BACKEND} STREQUAL "ANDROID")
-	set(ANKI_INPUT_SOURCES ${ANKI_INPUT_SOURCES} InputAndroid.cpp)
-elseif(${ANKI_WINDOW_BACKEND} STREQUAL "SDL")
+if(SDL)
 	set(ANKI_INPUT_SOURCES ${ANKI_INPUT_SOURCES} InputSdl.cpp)
 else()
 	set(ANKI_INPUT_SOURCES ${ANKI_INPUT_SOURCES} InputDummy.cpp)
 endif()
 
 add_library(ankiinput ${ANKI_INPUT_SOURCES})
-
-if(${ANKI_WINDOW_BACKEND} STREQUAL "SDL")
-	target_link_libraries(ankiinput SDL2_LIB)
-endif()
+target_link_libraries(ankiinput ankicore)

+ 3 - 3
src/math/CMakeLists.txt

@@ -1,4 +1,4 @@
-FILE(GLOB ANKI_M_SOURCES *.cpp)
-FILE(GLOB ANKI_M_HEADERS *.h)
+file(GLOB ANKI_M_SOURCES *.cpp)
+file(GLOB ANKI_M_HEADERS *.h)
 
-ADD_LIBRARY(ankimath ${ANKI_M_SOURCES} ${ANKI_M_HEADERS})
+add_library(ankimath ${ANKI_M_SOURCES} ${ANKI_M_HEADERS})

+ 3 - 3
src/physics/CMakeLists.txt

@@ -1,5 +1,5 @@
-FILE(GLOB ANKI_PHYS_SOURCES *.cpp)
-FILE(GLOB ANKI_PHYS_HEADERS *.h)
+file(GLOB ANKI_PHYS_SOURCES *.cpp)
+file(GLOB ANKI_PHYS_HEADERS *.h)
 
-ADD_LIBRARY(ankiphysics ${ANKI_PHYS_SOURCES} ${ANKI_PHYS_HEADERS})
+add_library(ankiphysics ${ANKI_PHYS_SOURCES} ${ANKI_PHYS_HEADERS})
 

+ 1 - 1
src/renderer/CMakeLists.txt

@@ -2,4 +2,4 @@ file(GLOB_RECURSE ANKI_R_SOURCES *.cpp)
 file(GLOB_RECURSE ANKI_R_HEADERS *.h)
 
 add_library(ankirenderer ${ANKI_R_SOURCES} ${ANKI_R_HEADERS})
-target_link_libraries(ankirenderer ankicore ankiui)
+target_link_libraries(ankirenderer ankicore ankiutil ankiresource)

+ 1 - 1
src/resource/CMakeLists.txt

@@ -2,4 +2,4 @@ file(GLOB_RECURSE ANKI_RSRC_SOURCES *.cpp)
 file(GLOB_RECURSE ANKI_RSRC_HEADERS *.h)
 
 add_library(ankiresource ${ANKI_RSRC_SOURCES} ${ANKI_RSRC_HEADERS})
-target_link_libraries(ankiresource ankiphysics ankigr ankirenderer)
+target_link_libraries(ankiresource ankiphysics ankigr)

+ 0 - 1
src/resource/Material.cpp

@@ -14,7 +14,6 @@
 #include <anki/util/File.h>
 #include <anki/util/Filesystem.h>
 #include <anki/misc/Xml.h>
-#include <anki/renderer/Renderer.h>
 #include <anki/renderer/Ms.h>
 #include <algorithm>