CMakeLists.txt 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #
  2. # Author: Shervin Aflatooni
  3. #
  4. cmake_minimum_required(VERSION 2.8)
  5. project (Engine)
  6. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
  7. set(ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE STRING "Root dir")
  8. set(CP_CMAKE_DIR ${PROJECT_SOURCE_DIR}/cmake)
  9. include(${CP_CMAKE_DIR}/macros.cmake)
  10. IF (EMSCRIPTEN)
  11. set ( BIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bin-emscripten )
  12. ELSEIF (ANDROID)
  13. set ( BIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bin-android )
  14. include(${CP_CMAKE_DIR}/android.cmake)
  15. ELSE ()
  16. set ( BIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bin )
  17. ENDIF ()
  18. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_DIR}/bin)
  19. set(EXECUTABLE_OUTPUT_PATH ${BIN_DIR}/bin)
  20. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${BIN_DIR}/lib)
  21. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${BIN_DIR}/lib)
  22. LINK_DIRECTORIES(${BIN_DIR}/lib)
  23. set(CMAKE_BINARY_DIR ${BIN_DIR})
  24. add_subdirectory(dependencies)
  25. set ( SDL2_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/SDL/include )
  26. set ( SDL2_LIBRARY SDL2 )
  27. set ( GLEW_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/glew/include )
  28. set ( GLEW_LIBRARIES libglew_shared )
  29. set ( PHYSFS_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/physfs )
  30. set ( PHYSFS_LIBRARY physfs )
  31. IF (EMSCRIPTEN)
  32. add_definitions( -DGLES2=1 )
  33. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall --preload-file ${CMAKE_CURRENT_SOURCE_DIR}/src/example/assets/ -s TOTAL_MEMORY=38000000 -s USE_SDL=2")
  34. add_definitions(-DASSET_DIR="${CMAKE_CURRENT_SOURCE_DIR}/src/example/assets/")
  35. #set(ENGINE_LIBS
  36. # ${ASSIMP_LIBRARY}
  37. #)
  38. set(ENGINE_INCLUDES
  39. ${CMAKE_CURRENT_SOURCE_DIR}/src/odingine/
  40. )
  41. ELSEIF (ANDROID)
  42. add_definitions( -DGLES2=1 )
  43. SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -std=c11")
  44. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  45. set(ENGINE_LIBS
  46. ${SDL2_LIBRARY}
  47. ${PHYSFS_LIBRARY}
  48. )
  49. set(ENGINE_INCLUDES
  50. ${SDL2_INCLUDE_DIR}
  51. ${PHYSFS_INCLUDE_DIR}
  52. ${CMAKE_CURRENT_SOURCE_DIR}/src/odingine/
  53. )
  54. ELSE ()
  55. SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -std=c11")
  56. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -std=c++11")
  57. find_package(OpenGL REQUIRED)
  58. set(ENGINE_LIBS
  59. ${OPENGL_LIBRARY}
  60. ${SDL2_LIBRARY}
  61. ${PHYSFS_LIBRARY}
  62. ${GLEW_LIBRARIES}
  63. )
  64. set(ENGINE_INCLUDES
  65. ${SDL2_INCLUDE_DIR}
  66. ${PHYSFS_INCLUDE_DIR}
  67. ${GLEW_INCLUDE_DIRS}
  68. ${CMAKE_CURRENT_SOURCE_DIR}/src/odingine/
  69. )
  70. ENDIF ()
  71. include_directories(${ENGINE_INCLUDES})
  72. add_subdirectory( ${CMAKE_CURRENT_SOURCE_DIR}/src )
  73. set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT game)