######################################################################################### # streflop # IMPORTANT: should come BEFORE finding packages ADD_SUBDIRECTORY(sources/streflop) ######################################################################################### # 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}) FIND_PACKAGE(OpenAL REQUIRED) INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENAL_LIBRARY}) FIND_PACKAGE(OGG REQUIRED) INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OGG_LIBRARY}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_LIBRARY}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_FILE_LIBRARY}) FIND_PACKAGE(LUA REQUIRED) INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES}) FIND_PACKAGE(JPEG REQUIRED) INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) FIND_PACKAGE(PNG REQUIRED) INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY}) FIND_PACKAGE(CURL REQUIRED) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CURL_LIBRARIES}) ######################################################################################### # glest lib SET(DIRS_WITH_SRC platform/common platform/sdl platform/posix util graphics graphics/gl sound sound/openal xml glew lua streflop streflop/libm_flt32_source map) IF(APPLE) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/macosx) ELSE(APPLE) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/unix) ENDIF(APPLE) SET(MG_INCLUDES_ROOT "include/") SET(MG_SOURCES_ROOT "sources/") SET(MG_INCLUDE_FILES "") SET(MG_SOURCE_FILES "") 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}) 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") ELSE(APPLE) SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE -DHAVE_SYS_IOCTL_H") ENDIF(APPLE) # 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) # [RCL] FIXME: make it compiler-agnostic SET(CMAKE_CXX_FLAGS "-O3 -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse") ADD_LIBRARY(glest_lib ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) TARGET_LINK_LIBRARIES(glest_lib streflop) TARGET_LINK_LIBRARIES(glest_lib ${EXTERNAL_LIBS})