######################################################################################### # streflop # IMPORTANT: should come BEFORE finding packages 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(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(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) 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]") ENDIF() ######################################################################################### # glest lib SET(DIRS_WITH_SRC feathery_ftp glew graphics graphics/gl lua map platform/common platform/miniupnpc sound sound/openal streflop streflop/libm_flt32_source util xml) 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 ) 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) 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(libglest STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) ELSE() SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game) ADD_LIBRARY(libglest SHARED ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) ENDIF() #ADD_LIBRARY(libglest SHARED ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) #ADD_LIBRARY(libglest STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) IF(WIN32) TARGET_LINK_LIBRARIES(libglest 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 libglest stdc++ moldname mingwex msvcrt user32 kernel32) ENDIF() TARGET_LINK_LIBRARIES(libglest streflop) TARGET_LINK_LIBRARIES(libglest ${EXTERNAL_LIBS})