diff --git a/CMakeLists.txt b/CMakeLists.txt index 58f6a74d..a2018f90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,9 @@ SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mk/cmake/Modules) ADD_SUBDIRECTORY( source/shared_lib ) ADD_SUBDIRECTORY( source/glest_game ) +ADD_SUBDIRECTORY( source/glest_map_editor ) +ADD_SUBDIRECTORY( source/g3d_viewer ) +ADD_SUBDIRECTORY( source/configurator ) IF(APPLE) include(mk/macosx/CMakeLists.txt) diff --git a/source/configurator/CMakeLists.txt b/source/configurator/CMakeLists.txt new file mode 100644 index 00000000..f288e789 --- /dev/null +++ b/source/configurator/CMakeLists.txt @@ -0,0 +1,78 @@ +# common libraries + +SET(EXTERNAL_LIBS "") + +FIND_PACKAGE(SDL REQUIRED) +INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + +FIND_PACKAGE(OpenGL REQUIRED) +INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) + +FIND_PACKAGE(XercesC REQUIRED) +INCLUDE_DIRECTORIES(${XERCESC_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY}) + +# It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. +FIND_PACKAGE(wxWidgets COMPONENTS core base gl REQUIRED) +# wxWidgets include (this will do all the magic to configure everything) +include( ${wxWidgets_USE_FILE} ) +#INCLUDE_DIRECTORIES(${WX_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) + +######################################################################################### +# glest configurator + +SET(DIRS_WITH_SRC + . + ) + +SET(GLEST_LIB_INCLUDE_ROOT "../shared_lib/include/") + +SET(GLEST_LIB_INCLUDE_DIRS + ${GLEST_LIB_INCLUDE_ROOT}platform/common + ${GLEST_LIB_INCLUDE_ROOT}platform/sdl + ${GLEST_LIB_INCLUDE_ROOT}platform/posix + ${GLEST_LIB_INCLUDE_ROOT}util + ${GLEST_LIB_INCLUDE_ROOT}graphics + ${GLEST_LIB_INCLUDE_ROOT}graphics/gl + ${GLEST_LIB_INCLUDE_ROOT}map + ${GLEST_LIB_INCLUDE_ROOT}sound + ${GLEST_LIB_INCLUDE_ROOT}xml + ) +INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) + +SET(MG_SOURCE_FILES "") + +FOREACH(DIR IN LISTS DIRS_WITH_SRC) + INCLUDE_DIRECTORIES( ${DIR} ) + + set(SRC_DIR_TO_GLOB ${DIR}) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + FILE(GLOB INCLUDE_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.h) + SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INCLUDE_FILES_FROM_THIS_DIR}) + IF(APPLE) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.mm) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.m) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + ENDIF(APPLE) +ENDFOREACH(DIR) + +# [RCL] FIXME: make it compiler-agnostic +SET(CMAKE_CXX_FLAGS "-O3 -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse -DSTREFLOP_SSE") + +SET(TARGET_NAME "glest_configurator") + +SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + +SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + +ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) +TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) +TARGET_LINK_LIBRARIES(${TARGET_NAME} glest_lib) +TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt new file mode 100644 index 00000000..c02cb9f7 --- /dev/null +++ b/source/g3d_viewer/CMakeLists.txt @@ -0,0 +1,83 @@ +# common libraries + +SET(EXTERNAL_LIBS "") + +FIND_PACKAGE(SDL REQUIRED) +INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + +FIND_PACKAGE(OpenGL REQUIRED) +INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) + +FIND_PACKAGE(XercesC REQUIRED) +INCLUDE_DIRECTORIES(${XERCESC_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY}) + +# It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. +FIND_PACKAGE(wxWidgets COMPONENTS core base gl REQUIRED) +# wxWidgets include (this will do all the magic to configure everything) +include( ${wxWidgets_USE_FILE} ) +#INCLUDE_DIRECTORIES(${WX_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) + +######################################################################################### +# glest G3d Model Viewer + +SET(DIRS_WITH_SRC + . + ) + +SET(GLEST_MAIN_INCLUDE_ROOT "../glest_game/") +SET(GLEST_LIB_INCLUDE_ROOT "../shared_lib/include/") + +SET(GLEST_LIB_INCLUDE_DIRS + ${GLEST_LIB_INCLUDE_ROOT}platform/common + ${GLEST_LIB_INCLUDE_ROOT}platform/sdl + ${GLEST_LIB_INCLUDE_ROOT}platform/posix + ${GLEST_LIB_INCLUDE_ROOT}util + ${GLEST_LIB_INCLUDE_ROOT}graphics + ${GLEST_LIB_INCLUDE_ROOT}graphics/gl + ${GLEST_LIB_INCLUDE_ROOT}map + ${GLEST_LIB_INCLUDE_ROOT}sound + ${GLEST_LIB_INCLUDE_ROOT}xml + ${GLEST_MAIN_INCLUDE_ROOT}graphics + ${GLEST_MAIN_INCLUDE_ROOT}game + ${GLEST_MAIN_INCLUDE_ROOT}global + ${GLEST_MAIN_INCLUDE_ROOT}sound + ) +INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) + +SET(MG_SOURCE_FILES "../glest_game/graphics/particle_type.cpp" "../glest_game/graphics/unit_particle_type.cpp") + +FOREACH(DIR IN LISTS DIRS_WITH_SRC) + INCLUDE_DIRECTORIES( ${DIR} ) + + set(SRC_DIR_TO_GLOB ${DIR}) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + FILE(GLOB INCLUDE_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.h) + SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INCLUDE_FILES_FROM_THIS_DIR}) + IF(APPLE) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.mm) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.m) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + ENDIF(APPLE) +ENDFOREACH(DIR) + +# [RCL] FIXME: make it compiler-agnostic +SET(CMAKE_CXX_FLAGS "-O3 -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse -DSTREFLOP_SSE") + +SET(TARGET_NAME "glest_g3dviewer") + +SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + +SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + +ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) +TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) +TARGET_LINK_LIBRARIES(${TARGET_NAME} glest_lib) +TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt new file mode 100644 index 00000000..5e883626 --- /dev/null +++ b/source/glest_map_editor/CMakeLists.txt @@ -0,0 +1,69 @@ +# common libraries + +SET(EXTERNAL_LIBS "") + +FIND_PACKAGE(SDL REQUIRED) +INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + +FIND_PACKAGE(OpenGL REQUIRED) +INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) + +# It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. +FIND_PACKAGE(wxWidgets COMPONENTS core base gl REQUIRED) +# wxWidgets include (this will do all the magic to configure everything) +include( ${wxWidgets_USE_FILE} ) +#INCLUDE_DIRECTORIES(${WX_INCLUDE_DIR}) +SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) + +######################################################################################### +# glest map editor + +SET(DIRS_WITH_SRC + . ) + +SET(GLEST_LIB_INCLUDE_ROOT "../shared_lib/include/") +SET(GLEST_LIB_INCLUDE_DIRS + ${GLEST_LIB_INCLUDE_ROOT}platform/common + ${GLEST_LIB_INCLUDE_ROOT}platform/sdl + ${GLEST_LIB_INCLUDE_ROOT}platform/posix + ${GLEST_LIB_INCLUDE_ROOT}util + ${GLEST_LIB_INCLUDE_ROOT}graphics + ${GLEST_LIB_INCLUDE_ROOT}graphics/gl + ${GLEST_LIB_INCLUDE_ROOT}map) +INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) + +SET(MG_SOURCE_FILES "") + +FOREACH(DIR IN LISTS DIRS_WITH_SRC) + INCLUDE_DIRECTORIES( ${DIR} ) + + set(SRC_DIR_TO_GLOB ${DIR}) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + FILE(GLOB INCLUDE_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.h) + SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INCLUDE_FILES_FROM_THIS_DIR}) + IF(APPLE) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.mm) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.m) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + ENDIF(APPLE) +ENDFOREACH(DIR) + +# [RCL] FIXME: make it compiler-agnostic +SET(CMAKE_CXX_FLAGS "-O3 -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse -DSTREFLOP_SSE") + +SET(TARGET_NAME "glest_editor") + +SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + +SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + +ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) +TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) +TARGET_LINK_LIBRARIES(${TARGET_NAME} glest_lib) +TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})