Daniele Bartolini 12 лет назад
Родитель
Сommit
7dad8dc35a
2 измененных файлов с 89 добавлено и 54 удалено
  1. 5 26
      CMakeLists.txt
  2. 84 28
      src/CMakeLists.txt

+ 5 - 26
CMakeLists.txt

@@ -7,14 +7,12 @@ set (CROWN_VERSION_MINOR 1)
 set (CROWN_VERSION_MICRO 0)
 set (CROWN_VERSION_MICRO 0)
 
 
 option (CROWN_USE_FLOAT "Whether to use float or double for representing real numbers." ON)
 option (CROWN_USE_FLOAT "Whether to use float or double for representing real numbers." ON)
-option (CROWN_BUILD_OPENGL "Whether to build the OpenGL renderer or not." ON)
-option (CROWN_BUILD_OPENGLES "Whether to build the OpenGL|ES 2.0 renderer or not." OFF)
 option (CROWN_BUILD_SAMPLES "Whether to build the samples" ON)
 option (CROWN_BUILD_SAMPLES "Whether to build the samples" ON)
 option (CROWN_BUILD_TOOLS "Whether to build the tools" ON)
 option (CROWN_BUILD_TOOLS "Whether to build the tools" ON)
 option (CROWN_BUILD_TESTS "Whether to build unit tests" OFF)
 option (CROWN_BUILD_TESTS "Whether to build unit tests" OFF)
 
 
 # platform independent includes
 # platform independent includes
-set (INCLUDES
+set (CROWN_INCLUDES
 	${CMAKE_SOURCE_DIR}/src
 	${CMAKE_SOURCE_DIR}/src
 	${CMAKE_SOURCE_DIR}/src/core
 	${CMAKE_SOURCE_DIR}/src/core
 	${CMAKE_SOURCE_DIR}/src/core/bv
 	${CMAKE_SOURCE_DIR}/src/core/bv
@@ -28,7 +26,6 @@ set (INCLUDES
 	${CMAKE_SOURCE_DIR}/src/os
 	${CMAKE_SOURCE_DIR}/src/os
 	${CMAKE_SOURCE_DIR}/src/input
 	${CMAKE_SOURCE_DIR}/src/input
 	${CMAKE_SOURCE_DIR}/src/renderers
 	${CMAKE_SOURCE_DIR}/src/renderers
-	${CMAKE_SOURCE_DIR}/src/renderers/gl
 	${CMAKE_SOURCE_DIR}/src/network
 	${CMAKE_SOURCE_DIR}/src/network
 
 
 	${CMAKE_SOURCE_DIR}/game
 	${CMAKE_SOURCE_DIR}/game
@@ -58,42 +55,24 @@ set (CROWN_LUAJIT_LIBS
 # detect operating system
 # detect operating system
 if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
 if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
 	set(LINUX 1)
 	set(LINUX 1)
-	list(APPEND INCLUDES
+
+	list (APPEND CROWN_INCLUDES
 		${CMAKE_SOURCE_DIR}/src/os/linux
 		${CMAKE_SOURCE_DIR}/src/os/linux
+		${CMAKE_SOURCE_DIR}/src/renderers/gl/glx
 	)
 	)
 endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
 endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
 
 
 if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
 if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
 	set(WINDOWS 1)
 	set(WINDOWS 1)
-	list(APPEND INCLUDES
-		${CMAKE_SOURCE_DIR}/src/os/win
-	)
 endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
 endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
 
 
-include_directories(${INCLUDES} ${CROWN_LUAJIT_INCLUDES})
+include_directories(${CROWN_INCLUDES} ${CROWN_LUAJIT_INCLUDES})
 link_directories(${CROWN_LUAJIT_LIBS})
 link_directories(${CROWN_LUAJIT_LIBS})
-add_definitions(-pipe -ansi -W -Wall -Wextra -Wno-long-long -Wno-variadic-macros -fPIC -g -pg)
 
 
 # add build directories
 # add build directories
 add_subdirectory(src)
 add_subdirectory(src)
 add_subdirectory(${CROWN_THIRD})
 add_subdirectory(${CROWN_THIRD})
 
 
-if (LINUX)
-	add_subdirectory(src/os/linux)
-endif (LINUX)
-
-if (WINDOWS)
-	add_subdirectory(src/os/win)
-endif (WINDOWS)
-
-if (CROWN_BUILD_OPENGL)
-	add_subdirectory(src/renderers/gl)
-endif (CROWN_BUILD_OPENGL)
-
-if (CROWN_BUILD_OPENGLES)
-	add_subdirectory(src/renderers/gles)
-endif (CROWN_BUILD_OPENGLES)
-
 if (CROWN_BUILD_TOOLS)
 if (CROWN_BUILD_TOOLS)
 	add_subdirectory(tools)
 	add_subdirectory(tools)
 endif (CROWN_BUILD_TOOLS)
 endif (CROWN_BUILD_TOOLS)

+ 84 - 28
src/CMakeLists.txt

@@ -196,6 +196,14 @@ set (INPUT_HEADERS
 	input/Touch.h
 	input/Touch.h
 )
 )
 
 
+set (NETWORK_SRC
+	network/BitMessage.cpp
+)
+
+set (NETWORK_HEADERS
+	network/BitMessage.h
+)
+
 set (RENDERERS_SRC
 set (RENDERERS_SRC
 	renderers/DebugRenderer.cpp
 	renderers/DebugRenderer.cpp
 	renderers/PixelFormat.cpp
 	renderers/PixelFormat.cpp
@@ -213,22 +221,82 @@ set (RENDERERS_HEADERS
 	renderers/VertexFormat.h
 	renderers/VertexFormat.h
 )
 )
 
 
+set (OS_SRC
+	os/OS.cpp
+)
+
 set (OS_HEADERS
 set (OS_HEADERS
 	os/OS.h
 	os/OS.h
 	os/NetAddress.h
 	os/NetAddress.h
 )
 )
 
 
-set (OS_SRC
-	os/OS.cpp
+# Platform independent libraries
+set (CROWN_LIBRARIES
+	rt
+	z
+	luajit-5.1
 )
 )
 
 
-set (NETWORK_SRC
-	network/BitMessage.cpp
+set (CROWN_COMPILER_FLAGS
+	-pipe
+	-ansi
+	-W
+	-Wall
+	-Wextra
+	-Wno-long-long
+	-Wno-variadic-macros
+	-g
+	-pg
 )
 )
 
 
-set (NETWORK_HEADERS
-	network/BitMessage.h
-)
+# Platform specific stuff
+if (LINUX)
+	list (APPEND OS_HEADERS
+		os/linux/OsWindow.h
+		os/linux/TCPSocket.h
+		os/linux/UDPSocket.h
+		os/linux/File.h
+		os/linux/Thread.h
+		os/linux/Mutex.h
+		os/linux/Cond.h
+	)
+
+	list (APPEND OS_SRC
+		os/linux/main.cpp
+		os/linux/LinuxOS.cpp
+		os/linux/OsWindow.cpp
+		os/posix/TCPSocket.cpp
+		os/posix/UDPSocket.cpp	
+		os/posix/File.cpp
+		os/posix/Thread.cpp
+		os/posix/Mutex.cpp
+		os/posix/Cond.cpp
+	)
+
+	list (APPEND RENDERERS_SRC
+		renderers/gl/GLRenderer.cpp
+		renderers/gl/GLUtils.cpp
+		renderers/gl/glx/GLContext.cpp
+	)
+
+	list (APPEND RENDERERS_HEADERS
+		renderers/gl/GLRenderer.h
+		renderers/gl/GLUtils.h
+		renderers/gl/glx/GLContext.h
+	)
+
+	list (APPEND CROWN_LIBRARIES
+		X11
+		Xrandr
+		pthread
+		dl
+		GLEW
+		GL
+	)
+
+	set (CROWN_EXECUTABLE_NAME crown-linux)
+	set (CROWN_MAIN_SRC os/linux/main.cpp)
+endif (LINUX)
 
 
 set (CROWN_SOURCES
 set (CROWN_SOURCES
 	${SRC}
 	${SRC}
@@ -273,30 +341,21 @@ set (CROWN_HEADERS
 	${SCRIPT_HEADERS}
 	${SCRIPT_HEADERS}
 )
 )
 
 
-include_directories(${CROWN_THIRD}/luajit/include/luajit-2.0)
-link_directories(${CROWN_THIRD}/luajit/lib)
-link_libraries(rt z luajit-5.1)
-add_library(crown SHARED ${CROWN_SOURCES} ${CROWN_HEADERS})
+configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/Config.h)
 
 
-if (CROWN_BUILD_OPENGL)
-	target_link_libraries(crown crown-gl)
-endif (CROWN_BUILD_OPENGL)
+include_directories(${CROWN_INCLUDES} ${CROWN_LUAJIT_INCLUDES})
 
 
-if (CROWN_BUILD_OPENGLES)
-	target_link_libraries(crown crown-gles)
-endif (CROWN_BUILD_OPENGLES)
+link_directories(${CROWN_LUAJIT_LIBS})
+link_libraries(${CROWN_LIBRARIES})
 
 
-if (LINUX)
-	target_link_libraries(crown crown-linux-support)
-endif (LINUX)
-
-if (WINDOWS)
-	target_link_libraries(crown crown-win)
-endif (WINDOWS)
+add_definitions(${CROWN_COMPILER_FLAGS})
 
 
-configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/Config.h)
+add_library(crown SHARED ${CROWN_SOURCES} ${CROWN_HEADERS})
+add_executable(${CROWN_EXECUTABLE_NAME} ${CROWN_MAIN_SRC})
+target_link_libraries(${CROWN_EXECUTABLE_NAME} crown)
 
 
 install (TARGETS crown DESTINATION lib/${CMAKE_PROJECT_NAME})
 install (TARGETS crown DESTINATION lib/${CMAKE_PROJECT_NAME})
+install (TARGETS ${CROWN_EXECUTABLE_NAME} DESTINATION bin)
 install (FILES ${HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME})
 install (FILES ${HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME})
 
 
 install (FILES ${CORE_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core)
 install (FILES ${CORE_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core)
@@ -310,10 +369,7 @@ install (FILES ${THREADS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core
 install (FILES ${SETTINGS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/settings)
 install (FILES ${SETTINGS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/core/settings)
 
 
 install (FILES ${INPUT_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/input)
 install (FILES ${INPUT_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/input)
-
 install (FILES ${RENDERERS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/renderers)
 install (FILES ${RENDERERS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/renderers)
-
 install (FILES ${NETWORK_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/network)
 install (FILES ${NETWORK_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/network)
-
 install (FILES ${OS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/os)
 install (FILES ${OS_HEADERS} DESTINATION include/${CMAKE_PROJECT_NAME}/os)