diff --git a/CMakeLists.txt b/CMakeLists.txt index 81b13d6f4..973928866 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,12 @@ FUNCTION(Subversion_IS_WC FOLDER RESULT_VAR) ENDFUNCTION() +OPTION(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS "Build model import/export tools" ON) +OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON) +OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON) +OPTION(BUILD_MEGAGLEST_CONFIGURATOR "Build configurator" ON) +OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON) + ## Compiler flags IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) IF(CMAKE_COMPILER_IS_GNUCXX) diff --git a/source/configurator/CMakeLists.txt b/source/configurator/CMakeLists.txt index 790f12c32..689b03275 100644 --- a/source/configurator/CMakeLists.txt +++ b/source/configurator/CMakeLists.txt @@ -1,132 +1,135 @@ # 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}) - -IF(NOT WIN32) - - FIND_PACKAGE(XercesC REQUIRED) - INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) - 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} ) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) -ELSE() - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8) - - SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} - ${PROJECT_SOURCE_DIR}/source/win32_deps/lib - ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) - - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) -ENDIF() - -######################################################################################### -# megaglest configurator - -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_LIB_INCLUDE_ROOT}streflop - ${GLEST_MAIN_INCLUDE_ROOT}facilities - ${GLEST_MAIN_INCLUDE_ROOT}game - ${GLEST_MAIN_INCLUDE_ROOT}global - ) -INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) - -IF(WIN32) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) -ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) -ENDIF() - -SET(MG_SOURCE_FILES "../glest_game/global/config.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) - SET(TARGET_NAME "megaglest_configurator") -IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) -ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) +IF(BUILD_MEGAGLEST_CONFIGURATOR) + MESSAGE(STATUS "Will try to build MegaGlest Configurator") + + 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}) + + IF(NOT WIN32) + + FIND_PACKAGE(XercesC REQUIRED) + INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) + 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} ) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) + ELSE() + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8) + + SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} + ${PROJECT_SOURCE_DIR}/source/win32_deps/lib + ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + ENDIF() + + ######################################################################################### + # megaglest configurator + + 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_LIB_INCLUDE_ROOT}streflop + ${GLEST_MAIN_INCLUDE_ROOT}facilities + ${GLEST_MAIN_INCLUDE_ROOT}game + ${GLEST_MAIN_INCLUDE_ROOT}global + ) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) + + IF(WIN32) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ELSE() + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ENDIF() + + SET(MG_SOURCE_FILES "../glest_game/global/config.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) + + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + ENDIF() + + 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) + IF(WIN32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + ELSE() + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + ENDIF() + + TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) + #MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") ENDIF() -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) -IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) -ELSE() - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) -ENDIF() - -TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) -#MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") - # Requires an install prefix for the items below to work IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") # Installation of the program diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index 130d4dcf9..557772240 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -1,131 +1,135 @@ # 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}) - -IF(NOT WIN32) - - FIND_PACKAGE(XercesC REQUIRED) - INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) - 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} ) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) -ELSE() - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8) - - SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} - ${PROJECT_SOURCE_DIR}/source/win32_deps/lib - ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) - - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) -ENDIF() - -######################################################################################### -# megaglest 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}streflop - ${GLEST_LIB_INCLUDE_ROOT}xml - ${GLEST_MAIN_INCLUDE_ROOT}facilities - ${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} ) - -IF(WIN32) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) -ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) -ENDIF() - -SET(MG_SOURCE_FILES "../glest_game/graphics/particle_type.cpp" "../glest_game/graphics/unit_particle_type.cpp" "../glest_game/global/config.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) - SET(TARGET_NAME "megaglest_g3dviewer") -IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) -ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) -ENDIF() +IF(BUILD_MEGAGLEST_MODEL_VIEWER) + MESSAGE(STATUS "Will try to build MegaGlest model viewer") -SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + FIND_PACKAGE(SDL REQUIRED) + INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) -ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) -TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) -IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) -ELSE() - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + FIND_PACKAGE(OpenGL REQUIRED) + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) + + IF(NOT WIN32) + + FIND_PACKAGE(XercesC REQUIRED) + INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) + 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} ) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) + ELSE() + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8) + + SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} + ${PROJECT_SOURCE_DIR}/source/win32_deps/lib + ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + ENDIF() + + ######################################################################################### + # megaglest 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}streflop + ${GLEST_LIB_INCLUDE_ROOT}xml + ${GLEST_MAIN_INCLUDE_ROOT}facilities + ${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} ) + + IF(WIN32) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ELSE() + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ENDIF() + + SET(MG_SOURCE_FILES "../glest_game/graphics/particle_type.cpp" "../glest_game/graphics/unit_particle_type.cpp" "../glest_game/global/config.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) + + + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + ENDIF() + + 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) + IF(WIN32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + ELSE() + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + ENDIF() + TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) ENDIF() -TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) # Requires an install prefix for the items below to work IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") diff --git a/source/glest_game/CMakeLists.txt b/source/glest_game/CMakeLists.txt index d177cc029..6056db664 100644 --- a/source/glest_game/CMakeLists.txt +++ b/source/glest_game/CMakeLists.txt @@ -2,197 +2,204 @@ # common libraries SET(EXTERNAL_LIBS "") +SET(TARGET_NAME "megaglest") -IF(WIN32) - SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} - ${PROJECT_SOURCE_DIR}/source/win32_deps/lib - ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) +IF(BUILD_MEGAGLEST) + MESSAGE(STATUS "Will try to build MegaGlest game") - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) - - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) -ENDIF() + IF(WIN32) + SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} + ${PROJECT_SOURCE_DIR}/source/win32_deps/lib + ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) -FIND_PACKAGE(SDL REQUIRED) -INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) -ENDIF() + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + ENDIF() -FIND_PACKAGE(OpenGL REQUIRED) -INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) -ENDIF() + FIND_PACKAGE(SDL REQUIRED) + INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + ENDIF() -FIND_PACKAGE(XercesC REQUIRED) -INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY}) -ENDIF() + FIND_PACKAGE(OpenGL REQUIRED) + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) + ENDIF() -FIND_PACKAGE(OpenAL REQUIRED) -INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENAL_LIBRARY}) -ENDIF() + FIND_PACKAGE(XercesC REQUIRED) + INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY}) + ENDIF() -FIND_PACKAGE(OGG REQUIRED) -INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR}) -IF(UNIX OR APPLE) -# SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OGG_LIBRARY}) -# SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_LIBRARY}) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_FILE_LIBRARY}) -ENDIF() + FIND_PACKAGE(OpenAL REQUIRED) + INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENAL_LIBRARY}) + ENDIF() -FIND_PACKAGE(LUA REQUIRED) -INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES}) -ENDIF() + FIND_PACKAGE(OGG REQUIRED) + INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR}) + IF(UNIX OR APPLE) + # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OGG_LIBRARY}) + # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_LIBRARY}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_FILE_LIBRARY}) + ENDIF() -FIND_PACKAGE(JPEG REQUIRED) -INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) -ENDIF() + FIND_PACKAGE(LUA REQUIRED) + INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES}) + ENDIF() -FIND_PACKAGE(PNG REQUIRED) -INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY}) -ENDIF() + FIND_PACKAGE(JPEG REQUIRED) + INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) + ENDIF() -FIND_PACKAGE(CURL REQUIRED) -INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CURL_LIBRARIES}) -ENDIF() + FIND_PACKAGE(PNG REQUIRED) + INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY}) + ENDIF() -######################################################################################### -# megaglest game + FIND_PACKAGE(CURL REQUIRED) + INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CURL_LIBRARIES}) + ENDIF() -SET(DIRS_WITH_SRC - ai - facilities - game - global - graphics - gui - main - menu - network - sound - type_instances - types - world) + FIND_PACKAGE(GLEW REQUIRED) + INCLUDE_DIRECTORIES(${GLEW_INCLUDE_PATH}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${GLEW_LIBRARY}) + ENDIF() -SET(GLEST_LIB_INCLUDE_ROOT "../shared_lib/include/") -SET(GLEST_LIB_INCLUDE_DIRS - ${GLEST_LIB_INCLUDE_ROOT}platform/common - ${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}sound - ${GLEST_LIB_INCLUDE_ROOT}sound/openal - ${GLEST_LIB_INCLUDE_ROOT}xml - ${GLEST_LIB_INCLUDE_ROOT}glew - ${GLEST_LIB_INCLUDE_ROOT}lua - ${GLEST_LIB_INCLUDE_ROOT}streflop - ${GLEST_LIB_INCLUDE_ROOT}streflop/libm_flt32_source - ${GLEST_LIB_INCLUDE_ROOT}map) -INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) -#INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ######################################################################################### + # megaglest game -IF(WIN32) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/sound/ds8) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) -ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) - SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/sdl) - SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/unix) -ENDIF() + SET(DIRS_WITH_SRC + ai + facilities + game + global + graphics + gui + main + menu + network + sound + type_instances + types + world) -SET(MG_SOURCE_FILES "") + SET(GLEST_LIB_INCLUDE_ROOT "../shared_lib/include/") + SET(GLEST_LIB_INCLUDE_DIRS + ${GLEST_LIB_INCLUDE_ROOT}platform/common + ${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}graphics/md5 + ${GLEST_LIB_INCLUDE_ROOT}sound + ${GLEST_LIB_INCLUDE_ROOT}sound/openal + ${GLEST_LIB_INCLUDE_ROOT}xml + ${GLEST_LIB_INCLUDE_ROOT}glew + ${GLEST_LIB_INCLUDE_ROOT}lua + ${GLEST_LIB_INCLUDE_ROOT}streflop + ${GLEST_LIB_INCLUDE_ROOT}streflop/libm_flt32_source + ${GLEST_LIB_INCLUDE_ROOT}map) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) + + #INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + + IF(WIN32) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/sound/ds8) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ELSE() + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/sdl) + SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/unix) + ENDIF() + + SET(MG_SOURCE_FILES "") -FOREACH(DIR IN LISTS DIRS_WITH_SRC) - INCLUDE_DIRECTORIES( ${DIR} ) + 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 SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.c) - 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(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 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) + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.c) + 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}) -# Force the version and date/time stamp file to be touched so the compile stamp is always right -IF(UNIX) -add_custom_command( - OUTPUT mg.tmp - COMMAND touch ${PROJECT_SOURCE_DIR}/source/glest_game/facilities/game_util.cpp) -add_custom_target(run ALL - DEPENDS mg.tmp) + 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) + + # Force the version and date/time stamp file to be touched so the compile stamp is always right + IF(UNIX) + add_custom_command( + OUTPUT mg.tmp + COMMAND touch ${PROJECT_SOURCE_DIR}/source/glest_game/facilities/game_util.cpp) + add_custom_target(run ALL + DEPENDS mg.tmp) + ENDIF() + + IF(WIN32) + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wl,-subsystem,console -mconsole") + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wl,-subsystem,console -mconsole") + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Wl,-subsystem,console -mconsole") + SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Wl,-subsystem,console -mconsole") + + ENDIF() + + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + ENDIF() + + SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + + ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) + IF(WIN32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) + ENDIF() + IF(NOT WIN32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + ENDIF() + TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) ENDIF() -IF(WIN32) - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wl,-subsystem,console -mconsole") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wl,-subsystem,console -mconsole") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Wl,-subsystem,console -mconsole") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Wl,-subsystem,console -mconsole") - -ENDIF() - -IF(WIN32) - SET(TARGET_NAME "megaglest") -ELSE() - SET(TARGET_NAME "megaglest") -ENDIF() - -IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) -ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) -ENDIF() - -SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) - -ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) -IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) -ENDIF() -IF(NOT WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) -ENDIF() -TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) - # Requires an install prefix for the items below to work IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") #IF(NOT WIN32) diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index a80b64859..f4c496784 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -1,133 +1,136 @@ # 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}) - -IF(NOT WIN32) - # It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. - - IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - SET(wxWidgets_CONFIG_OPTIONS --prefix=/usr/local) - MESSAGE(STATUS "Detected FreeBSD.....") - ENDIF() - - FIND_PACKAGE(wxWidgets COMPONENTS core base gl REQUIRED) - - # wxWidgets include (this will do all the magic to configure everything) - include( ${wxWidgets_USE_FILE} ) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) -ELSE() - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8) - - SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} - ${PROJECT_SOURCE_DIR}/source/win32_deps/lib - ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) - - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) -ENDIF() - -######################################################################################### -# megaglest map editor - -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}streflop - ${GLEST_MAIN_INCLUDE_ROOT}facilities - ${GLEST_MAIN_INCLUDE_ROOT}game - ${GLEST_MAIN_INCLUDE_ROOT}global) - -INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) - -IF(WIN32) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) -ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) -ENDIF() - - -SET(MG_SOURCE_FILES "../glest_game/global/config.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) - SET(TARGET_NAME "megaglest_editor") -IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) -ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) -ENDIF() +IF(BUILD_MEGAGLEST_MAP_EDITOR) + MESSAGE(STATUS "Will try to build MegaGlest map editor") -SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + FIND_PACKAGE(SDL REQUIRED) + INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) -ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) -IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) -ENDIF() + FIND_PACKAGE(OpenGL REQUIRED) + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) -TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) -IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) -ELSE() - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + IF(NOT WIN32) + # It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. + + IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + SET(wxWidgets_CONFIG_OPTIONS --prefix=/usr/local) + MESSAGE(STATUS "Detected FreeBSD.....") + ENDIF() + + FIND_PACKAGE(wxWidgets COMPONENTS core base gl REQUIRED) + + # wxWidgets include (this will do all the magic to configure everything) + include( ${wxWidgets_USE_FILE} ) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${wxWidgets_LIBRARIES}) + ELSE() + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8) + + SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} + ${PROJECT_SOURCE_DIR}/source/win32_deps/lib + ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + ENDIF() + + ######################################################################################### + # megaglest map editor + + 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}streflop + ${GLEST_MAIN_INCLUDE_ROOT}facilities + ${GLEST_MAIN_INCLUDE_ROOT}game + ${GLEST_MAIN_INCLUDE_ROOT}global) + + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) + + IF(WIN32) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ELSE() + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl ) + ENDIF() + + + SET(MG_SOURCE_FILES "../glest_game/global/config.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) + + IF(UNIX AND NOT APPLE) + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) + ELSE() + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + ENDIF() + + SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + + ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) + IF(WIN32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) + ENDIF() + + TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) + IF(WIN32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + ELSE() + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) + ENDIF() + TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) ENDIF() -TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) # Requires an install prefix for the items below to work IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") diff --git a/source/shared_lib/CMakeLists.txt b/source/shared_lib/CMakeLists.txt index 66a74befa..c3d9326d5 100644 --- a/source/shared_lib/CMakeLists.txt +++ b/source/shared_lib/CMakeLists.txt @@ -8,337 +8,341 @@ ADD_SUBDIRECTORY(sources/streflop) # common libraries SET(EXTERNAL_LIBS "") - -INCLUDE (CheckIncludeFiles) - -IF(WIN32) - SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} - ${PROJECT_SOURCE_DIR}/source/win32_deps/lib - ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib - ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include) - - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) - link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib) - - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) -ENDIF() - -FIND_PACKAGE(CURL REQUIRED) -INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CURL_LIBRARIES}) -ENDIF() -# check libcurl version # -IF(WIN32) - file (READ ${PROJECT_SOURCE_DIR}${CURL_INCLUDE_DIR}/curl/curlver.h CURL_VERSION_H_CONTENTS) -ELSE() - file (READ ${CURL_INCLUDE_DIR}/curl/curlver.h CURL_VERSION_H_CONTENTS) -ENDIF() - -string (REGEX MATCH "LIBCURL_VERSION_MAJOR[ \t]+([0-9]+)" LIBCURL_VERSION_MJ ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_MJ ${LIBCURL_VERSION_MJ}) -string (REGEX MATCH "LIBCURL_VERSION_MINOR[ \t]+([0-9]+)" LIBCURL_VERSION_MI ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_MI ${LIBCURL_VERSION_MI}) -string (REGEX MATCH "LIBCURL_VERSION_PATCH[ \t]+([0-9]+)" LIBCURL_VERSION_PT ${CURL_VERSION_H_CONTENTS}) -string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_PT ${LIBCURL_VERSION_PT}) -set (CURL_MAJOR_VERSION ${LIBCURL_VERSION_MJ}) -set (CURL_MINOR_VERSION ${LIBCURL_VERSION_MI}) -set (CURL_PATCH_VERSION ${LIBCURL_VERSION_PT}) -include_regular_expression("^.*$") -# Setup package meta-data -set(CURL_VERSION ${CURL_MAJOR_VERSION}.${CURL_MINOR_VERSION}.${CURL_PATCH_VERSION}) -message(STATUS "curl version=[${CURL_VERSION}]") -#IF( ${CURL_VERSION} VERSION_LESS 7.21.0) -IF( ${CURL_VERSION} VERSION_LESS 7.16.4) - message(STATUS "(please visit http://curl.haxx.se/libcurl/ to find a newer version)") - #message(FATAL_ERROR " CURL version = [${CURL_VERSION}] we require AT LEAST [7.21.0]") - message(FATAL_ERROR " CURL version = [${CURL_VERSION}] we require AT LEAST [7.16.4]") -ENDIF() - -FIND_PACKAGE(SDL REQUIRED) -INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) -ENDIF() - -FIND_PACKAGE(OpenGL REQUIRED) -INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) -ENDIF() - -FIND_PACKAGE(XercesC REQUIRED) -INCLUDE_DIRECTORIES(${XERCESC_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY}) -ENDIF() - -FIND_PACKAGE(OpenAL REQUIRED) -INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENAL_LIBRARY}) -ENDIF() - -# FIND_PACKAGE(OGG REQUIRED) -# INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR}) -# IF(UNIX) - # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OGG_LIBRARY}) - # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_LIBRARY}) - # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_FILE_LIBRARY}) -# ENDIF() - -FIND_PACKAGE(LUA REQUIRED) -INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES}) -ENDIF() - -FIND_PACKAGE(JPEG REQUIRED) -INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) -ENDIF() - -FIND_PACKAGE(PNG REQUIRED) -INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) -IF(UNIX) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY}) -ENDIF() - -FIND_PACKAGE(FontConfig) -IF(FONTCONFIG_FOUND) - SET(HAVE_FONTCONFIG 1) - INCLUDE_DIRECTORIES( ${FONTCONFIG_INCLUDE_DIR} ) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FONTCONFIG_LIBRARIES} ) -ENDIF(FONTCONFIG_FOUND) - -OPTION(USE_FTGL "Use FTGL for on-screen fonts (found on your system)" ON) - -if(USE_FTGL) - ADD_DEFINITIONS(-DUSE_FTGL) - - find_package( Freetype REQUIRED) - include_directories( ${FREETYPE_INCLUDE_DIRS} ) - -endif(USE_FTGL) - -#INCLUDE(FindPkgConfig.cmake) -#pkg_search_module (FTGL ftgl) -FIND_PACKAGE(FTGL) - - -IF(USE_FTGL) - if (FTGL_FOUND) - MESSAGE(STATUS "**NOTE: FTGL font support was detected and enabled.") - else() - MESSAGE(STATUS - "**NOTE: Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.") - endif() - - ADD_DEFINITIONS(-DUSE_FTGL) - - #set(FTGL_INCUDE_DIR ${FTGL_INCLUDE_DIR} ${CMAKE_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR}) - #set(FTGL_LINK_DIRS ${FTGL_LIBRARY_DIRS} ) - #set(FTGL_LINK_TARGETS ftgl freetype) - - INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIR}) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FTGL_LIBRARY}) - -ELSE() - IF(FTGL_FOUND) - MESSAGE(STATUS "**NOTE: Warning: FTGL font support was detected but NOT enabled. You can enable it by setting USE_FTGL=true") - ELSE() - MESSAGE(STATUS "**NOTE: Warning: FTGL font support was not detected. Visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.") - ENDIF() - - # todo: change this because its obscure and probably not being used - #set (FTGL_INCLUDE_DIRS ) - #set (FTGL_LINK_DIRS ) - #set (FTGL_LINK_TARGETS ) -ENDIF(USE_FTGL) - -IF(MINIUPNPC_VERSION_PRE1_5) - ADD_DEFINITIONS(-DMINIUPNPC_VERSION_PRE1_5) -ENDIF() -IF(MINIUPNPC_VERSION_PRE1_6) - ADD_DEFINITIONS(-DMINIUPNPC_VERSION_PRE1_6) -ENDIF() - -######################################################################################### -# megaglest lib - -SET(DIRS_WITH_SRC - feathery_ftp - glew - graphics - graphics/gl - lua - map - platform/common - sound - sound/openal - streflop - streflop/libm_flt32_source - util - xml) - -IF(NOT WANT_STATIC_LIBS) - MESSAGE(STATUS "*** Searching for miniupnpc since WANT_STATIC_LIBS is off ...") - FIND_PACKAGE(Miniupnpc) -ENDIF() - -if(NOT MINIUPNP_FOUND) - MESSAGE(STATUS "*** Using EMBEDDED miniupnpc since dev system does not have it... MINIUPNP_FOUND [${MINIUPNP_FOUND}]") - - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/miniupnpc) -else() - MESSAGE(STATUS "*** Using SHARED miniupnpc found in [${MINIUPNP_INCLUDE_DIR}] MINIUPNP_FOUND [${MINIUPNP_FOUND}] MINIUPNP_LIBRARY [${MINIUPNP_LIBRARY}]") - - INCLUDE_DIRECTORIES(${MINIUPNP_INCLUDE_DIR}) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${MINIUPNP_LIBRARY}) -endif() - -IF(APPLE) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/macosx) -ELSEIF(WIN32) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/win32) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} sound/ds8) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} ${PROJECT_SOURCE_DIR}/source/win32_deps/src) -ELSE() - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix) - SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/unix) -ENDIF() - -SET(MG_INCLUDES_ROOT "include/") -SET(MG_SOURCES_ROOT "sources/") -SET(MG_INCLUDE_FILES "") -SET(MG_SOURCE_FILES "") -INCLUDE_DIRECTORIES( ${MG_INCLUDES_ROOT}platform/sdl ) - -IF(NOT WANT_STATIC_LIBS) - MESSAGE(STATUS "*** Searching for libircclient since WANT_STATIC_LIBS is off ...") - FIND_PACKAGE(Ircclient) -ENDIF() - -if(NOT IRCCLIENT_FOUND) - MESSAGE(STATUS "*** Using EMBEDDED libircclient since dev system does not have it... IRCCLIENT_FOUND [${IRCCLIENT_FOUND}]") - - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/libircclient/src/libircclient.c) - INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/libircclient/include) -else() - MESSAGE(STATUS "*** Using SHARED libircclient found in [${IRCCLIENT_INCLUDE_DIR}] IRCCLIENT_FOUND [${IRCCLIENT_FOUND}] IRCCLIENT_LIBRARY [${IRCCLIENT_LIBRARY}]") - - INCLUDE_DIRECTORIES(${IRCCLIENT_INCLUDE_DIR}) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${IRCCLIENT_LIBRARY}) -endif() - -IF(WIN32) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/socket.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/ircclient.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/miniftpserver.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/miniftpclient.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/gl_wrap.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/thread.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window_gl.cpp) - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/win32_deps/src/glprocs.c) -ENDIF() - -FOREACH(DIR IN LISTS DIRS_WITH_SRC) - set(INCLUDE_DIR_TO_GLOB ${MG_INCLUDES_ROOT}${DIR}) - INCLUDE_DIRECTORIES( ${INCLUDE_DIR_TO_GLOB} ) - IF(APPLE) - #MESSAGE(STATUS "INCLUDE_DIR_TO_GLOB: ${INCLUDE_DIR_TO_GLOB}") - FILE(GLOB INC_FILES_FROM_THIS_DIR ${INCLUDE_DIR_TO_GLOB}/*.h) - #MESSAGE(STATUS "INCLUDE FILES GLOBBED: ${INC_FILES_FROM_THIS_DIR}") - SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INC_FILES_FROM_THIS_DIR}) - ENDIF(APPLE) - - set(SRC_DIR_TO_GLOB ${MG_SOURCES_ROOT}${DIR}) - #MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}") - FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.cpp) - #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) - - set(SRC_DIR_TO_GLOB ${MG_SOURCES_ROOT}${DIR}) - #MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}") - FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.c) - #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_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) - -#MESSAGE(STATUS "Source files: ${MG_INCLUDE_FILES}") -#MESSAGE(STATUS "Source files: ${MG_SOURCE_FILES}") -#MESSAGE(STATUS "Include dirs: ${INCLUDE_DIRECTORIES}") - -# FIXME: hackish, should be tested for -IF(APPLE) - SET(PLATFORM_SPECIFIC_DEFINES "-DHAVE_SYS_IOCTL_H") -ELSEIF(WIN32) - SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE") -ELSE() - SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE -DHAVE_SYS_IOCTL_H") -ENDIF() - -# FIXME: hackish... -SET(STREFLOP_PROPERTIES "-DSTREFLOP_SSE -DLIBM_COMPILING_FLT32") - -SET_SOURCE_FILES_PROPERTIES(${MG_SOURCE_FILES} PROPERTIES COMPILE_FLAGS - "${PLATFORM_SPECIFIC_DEFINES} ${STREFLOP_PROPERTIES} ${CXXFLAGS}") - -SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) - SET(TARGET_NAME "libmegaglest") -IF(NOT WIN32) - ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) - MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]") -ELSE() - SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) - ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) - MESSAGE(STATUS "Building shared game library as a SHARED library and saving to [${LIBRARY_OUTPUT_PATH}]") -ENDIF() - -# ADD_LIBRARY(libmegaglest SHARED ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) -# ADD_LIBRARY(libmegaglest STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) - -MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") - -IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop stdc++ moldname mingwex msvcrt user32 kernel32) - - TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) - TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) -ELSE() - TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) - TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) - +IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST_CONFIGURATOR OR BUILD_MEGAGLEST) + MESSAGE(STATUS "Will try to build MegaGlest shared library") + + INCLUDE (CheckIncludeFiles) + + IF(WIN32) + SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} + ${PROJECT_SOURCE_DIR}/source/win32_deps/lib + ${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib + ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include) + + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib) + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) + link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib) + + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) + ENDIF() + + FIND_PACKAGE(CURL REQUIRED) + INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CURL_LIBRARIES}) + ENDIF() + # check libcurl version # + IF(WIN32) + file (READ ${PROJECT_SOURCE_DIR}${CURL_INCLUDE_DIR}/curl/curlver.h CURL_VERSION_H_CONTENTS) + ELSE() + file (READ ${CURL_INCLUDE_DIR}/curl/curlver.h CURL_VERSION_H_CONTENTS) + ENDIF() + + string (REGEX MATCH "LIBCURL_VERSION_MAJOR[ \t]+([0-9]+)" LIBCURL_VERSION_MJ ${CURL_VERSION_H_CONTENTS}) + string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_MJ ${LIBCURL_VERSION_MJ}) + string (REGEX MATCH "LIBCURL_VERSION_MINOR[ \t]+([0-9]+)" LIBCURL_VERSION_MI ${CURL_VERSION_H_CONTENTS}) + string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_MI ${LIBCURL_VERSION_MI}) + string (REGEX MATCH "LIBCURL_VERSION_PATCH[ \t]+([0-9]+)" LIBCURL_VERSION_PT ${CURL_VERSION_H_CONTENTS}) + string (REGEX MATCH "([0-9]+)" LIBCURL_VERSION_PT ${LIBCURL_VERSION_PT}) + set (CURL_MAJOR_VERSION ${LIBCURL_VERSION_MJ}) + set (CURL_MINOR_VERSION ${LIBCURL_VERSION_MI}) + set (CURL_PATCH_VERSION ${LIBCURL_VERSION_PT}) + include_regular_expression("^.*$") + # Setup package meta-data + set(CURL_VERSION ${CURL_MAJOR_VERSION}.${CURL_MINOR_VERSION}.${CURL_PATCH_VERSION}) + message(STATUS "curl version=[${CURL_VERSION}]") + #IF( ${CURL_VERSION} VERSION_LESS 7.21.0) + IF( ${CURL_VERSION} VERSION_LESS 7.16.4) + message(STATUS "(please visit http://curl.haxx.se/libcurl/ to find a newer version)") + #message(FATAL_ERROR " CURL version = [${CURL_VERSION}] we require AT LEAST [7.21.0]") + message(FATAL_ERROR " CURL version = [${CURL_VERSION}] we require AT LEAST [7.16.4]") + ENDIF() + + FIND_PACKAGE(SDL REQUIRED) + INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY}) + ENDIF() + + FIND_PACKAGE(OpenGL REQUIRED) + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) + ENDIF() + + FIND_PACKAGE(XercesC REQUIRED) + INCLUDE_DIRECTORIES(${XERCESC_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY}) + ENDIF() + + FIND_PACKAGE(OpenAL REQUIRED) + INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENAL_LIBRARY}) + ENDIF() + + # FIND_PACKAGE(OGG REQUIRED) + # INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR}) + # IF(UNIX) + # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OGG_LIBRARY}) + # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_LIBRARY}) + # SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_FILE_LIBRARY}) + # ENDIF() + + FIND_PACKAGE(LUA REQUIRED) + INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES}) + ENDIF() + + FIND_PACKAGE(JPEG REQUIRED) + INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) + ENDIF() + + FIND_PACKAGE(PNG REQUIRED) + INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY}) + ENDIF() + + FIND_PACKAGE(FontConfig) + IF(FONTCONFIG_FOUND) + SET(HAVE_FONTCONFIG 1) + INCLUDE_DIRECTORIES( ${FONTCONFIG_INCLUDE_DIR} ) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FONTCONFIG_LIBRARIES} ) + ENDIF(FONTCONFIG_FOUND) + + OPTION(USE_FTGL "Use FTGL for on-screen fonts (found on your system)" ON) + + if(USE_FTGL) + ADD_DEFINITIONS(-DUSE_FTGL) + + find_package( Freetype REQUIRED) + include_directories( ${FREETYPE_INCLUDE_DIRS} ) + + endif(USE_FTGL) + + #INCLUDE(FindPkgConfig.cmake) + #pkg_search_module (FTGL ftgl) + FIND_PACKAGE(FTGL) + + + IF(USE_FTGL) + if (FTGL_FOUND) + MESSAGE(STATUS "**NOTE: FTGL font support was detected and enabled.") + else() + MESSAGE(STATUS + "**NOTE: Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.") + endif() + + ADD_DEFINITIONS(-DUSE_FTGL) + + #set(FTGL_INCUDE_DIR ${FTGL_INCLUDE_DIR} ${CMAKE_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR}) + #set(FTGL_LINK_DIRS ${FTGL_LIBRARY_DIRS} ) + #set(FTGL_LINK_TARGETS ftgl freetype) + + INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FTGL_LIBRARY}) + + ELSE() + IF(FTGL_FOUND) + MESSAGE(STATUS "**NOTE: Warning: FTGL font support was detected but NOT enabled. You can enable it by setting USE_FTGL=true") + ELSE() + MESSAGE(STATUS "**NOTE: Warning: FTGL font support was not detected. Visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.") + ENDIF() + + # todo: change this because its obscure and probably not being used + #set (FTGL_INCLUDE_DIRS ) + #set (FTGL_LINK_DIRS ) + #set (FTGL_LINK_TARGETS ) + ENDIF(USE_FTGL) + + IF(MINIUPNPC_VERSION_PRE1_5) + ADD_DEFINITIONS(-DMINIUPNPC_VERSION_PRE1_5) + ENDIF() + IF(MINIUPNPC_VERSION_PRE1_6) + ADD_DEFINITIONS(-DMINIUPNPC_VERSION_PRE1_6) + ENDIF() + + ######################################################################################### + # megaglest lib + + SET(DIRS_WITH_SRC + feathery_ftp + glew + graphics + graphics/gl + graphics/md5 + lua + map + platform/common + sound + sound/openal + streflop + streflop/libm_flt32_source + util + xml) + + IF(NOT WANT_STATIC_LIBS) + MESSAGE(STATUS "*** Searching for miniupnpc since WANT_STATIC_LIBS is off ...") + FIND_PACKAGE(Miniupnpc) + ENDIF() + + if(NOT MINIUPNP_FOUND) + MESSAGE(STATUS "*** Using EMBEDDED miniupnpc since dev system does not have it... MINIUPNP_FOUND [${MINIUPNP_FOUND}]") + + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/miniupnpc) + else() + MESSAGE(STATUS "*** Using SHARED miniupnpc found in [${MINIUPNP_INCLUDE_DIR}] MINIUPNP_FOUND [${MINIUPNP_FOUND}] MINIUPNP_LIBRARY [${MINIUPNP_LIBRARY}]") + + INCLUDE_DIRECTORIES(${MINIUPNP_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${MINIUPNP_LIBRARY}) + endif() + + IF(APPLE) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/macosx) + ELSEIF(WIN32) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/win32) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} sound/ds8) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} ${PROJECT_SOURCE_DIR}/source/win32_deps/src) + ELSE() + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix) + SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/unix) + ENDIF() + + SET(MG_INCLUDES_ROOT "include/") + SET(MG_SOURCES_ROOT "sources/") + SET(MG_INCLUDE_FILES "") + SET(MG_SOURCE_FILES "") + INCLUDE_DIRECTORIES( ${MG_INCLUDES_ROOT}platform/sdl ) + + IF(NOT WANT_STATIC_LIBS) + MESSAGE(STATUS "*** Searching for libircclient since WANT_STATIC_LIBS is off ...") + FIND_PACKAGE(Ircclient) + ENDIF() + + if(NOT IRCCLIENT_FOUND) + MESSAGE(STATUS "*** Using EMBEDDED libircclient since dev system does not have it... IRCCLIENT_FOUND [${IRCCLIENT_FOUND}]") + + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/libircclient/src/libircclient.c) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/libircclient/include) + else() + MESSAGE(STATUS "*** Using SHARED libircclient found in [${IRCCLIENT_INCLUDE_DIR}] IRCCLIENT_FOUND [${IRCCLIENT_FOUND}] IRCCLIENT_LIBRARY [${IRCCLIENT_LIBRARY}]") + + INCLUDE_DIRECTORIES(${IRCCLIENT_INCLUDE_DIR}) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${IRCCLIENT_LIBRARY}) + endif() + + IF(WIN32) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/socket.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/ircclient.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/miniftpserver.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/miniftpclient.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/gl_wrap.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/thread.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window_gl.cpp) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/win32_deps/src/glprocs.c) + ENDIF() + + FOREACH(DIR IN LISTS DIRS_WITH_SRC) + set(INCLUDE_DIR_TO_GLOB ${MG_INCLUDES_ROOT}${DIR}) + INCLUDE_DIRECTORIES( ${INCLUDE_DIR_TO_GLOB} ) + IF(APPLE) + #MESSAGE(STATUS "INCLUDE_DIR_TO_GLOB: ${INCLUDE_DIR_TO_GLOB}") + FILE(GLOB INC_FILES_FROM_THIS_DIR ${INCLUDE_DIR_TO_GLOB}/*.h) + #MESSAGE(STATUS "INCLUDE FILES GLOBBED: ${INC_FILES_FROM_THIS_DIR}") + SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INC_FILES_FROM_THIS_DIR}) + ENDIF(APPLE) + + set(SRC_DIR_TO_GLOB ${MG_SOURCES_ROOT}${DIR}) + #MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}") + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.cpp) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + + set(SRC_DIR_TO_GLOB ${MG_SOURCES_ROOT}${DIR}) + #MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}") + FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.c) + #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_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) + + #MESSAGE(STATUS "Source files: ${MG_INCLUDE_FILES}") + #MESSAGE(STATUS "Source files: ${MG_SOURCE_FILES}") + #MESSAGE(STATUS "Include dirs: ${INCLUDE_DIRECTORIES}") + + # FIXME: hackish, should be tested for + IF(APPLE) + SET(PLATFORM_SPECIFIC_DEFINES "-DHAVE_SYS_IOCTL_H") + ELSEIF(WIN32) + SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE") + ELSE() + SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE -DHAVE_SYS_IOCTL_H") + ENDIF() + + # FIXME: hackish... + SET(STREFLOP_PROPERTIES "-DSTREFLOP_SSE -DLIBM_COMPILING_FLT32") + + SET_SOURCE_FILES_PROPERTIES(${MG_SOURCE_FILES} PROPERTIES COMPILE_FLAGS + "${PLATFORM_SPECIFIC_DEFINES} ${STREFLOP_PROPERTIES} ${CXXFLAGS}") + + SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) + + IF(NOT WIN32) + ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) + MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]") + ELSE() + SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) + ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) + MESSAGE(STATUS "Building shared game library as a SHARED library and saving to [${LIBRARY_OUTPUT_PATH}]") + ENDIF() + + # ADD_LIBRARY(libmegaglest SHARED ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) + # ADD_LIBRARY(libmegaglest STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) + + MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") + + IF(WIN32) + TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop stdc++ moldname mingwex msvcrt user32 kernel32) + + TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) + TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) + ELSE() + TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) + TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) + + ENDIF() ENDIF() diff --git a/source/tools/glexemel/CMakeLists.txt b/source/tools/glexemel/CMakeLists.txt index f5f96f594..f860c41c7 100644 --- a/source/tools/glexemel/CMakeLists.txt +++ b/source/tools/glexemel/CMakeLists.txt @@ -1,17 +1,21 @@ # glexemel -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/source/tools/glexemel) -add_executable(g2xml g2xml.c g3dv4.h) +IF(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS) + MESSAGE(STATUS "Will try to build MegaGlest model import/export tools") -IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - SET(CMAKE_INCLUDE_PATH /usr/local/include) -ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/source/tools/glexemel) + add_executable(g2xml g2xml.c g3dv4.h) -find_package(LibXml2) -IF(LIBXML2_FOUND) - include_directories(${CMAKE_INCLUDE_PATH} ${LIBXML2_INCLUDE_DIR}) - add_executable(xml2g xml2g.c g3dv4.h) - target_link_libraries(xml2g ${LIBXML2_LIBRARIES}) -ELSE() - MESSAGE(STATUS "WARNING... xml2g will NOT be built since we cannot find libXml2 on this machine") + IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + SET(CMAKE_INCLUDE_PATH /usr/local/include) + ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + + find_package(LibXml2) + IF(LIBXML2_FOUND) + include_directories(${CMAKE_INCLUDE_PATH} ${LIBXML2_INCLUDE_DIR}) + add_executable(xml2g xml2g.c g3dv4.h) + target_link_libraries(xml2g ${LIBXML2_LIBRARIES}) + ELSE() + MESSAGE(STATUS "WARNING... xml2g will NOT be built since we cannot find libXml2 on this machine") + ENDIF() ENDIF()