CMakeLists.txt 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. cmake_minimum_required(VERSION 2.8)
  2. # Set policy: link_directories is relative to source dir
  3. cmake_policy(SET CMP0015 NEW)
  4. # Set the project name.
  5. project(ERUTA C)
  6. # Play with PCC
  7. # SET(CMAKE_C_COMPILER /usr/local/bin/pcc)
  8. # Play with UCC
  9. # SET(CMAKE_C_COMPILER /usr/local/lib/ucc/ucc)
  10. # tell CMake to search first in the cmake subdirectory for FIND_PACKAGE() or INCLUDE()
  11. set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/)
  12. include(CheckCSourceCompiles)
  13. include(CheckCXXSourceCompiles)
  14. if(CMAKE_COMPILER_IS_GNUCC)
  15. set(COMPILER_GCC 1)
  16. set(CMAKE_C_FLAGS "-W -Wall -wunused -Wno-unused -Wno-unknown-pragmas -g -std=c99 -ffast-math -fsanitize=address -fstrict-aliasing -Wstrict-aliasing=2")
  17. # set(CMAKE_LD_FLAGS "-pg")
  18. # always use gnu99, debugging, all warnings except unused and unknown pragmas.
  19. # when compiling with gnu compiler.
  20. # Warn about alisasing because otherwise aliasing problems it may not be detected.
  21. endif(CMAKE_COMPILER_IS_GNUCC)
  22. # or for PCC
  23. # set(CMAKE_C_FLAGS "-fpic -fPIC")
  24. set(CMAKE_C_FLAGS "-W -Wall -Wno-unused -Wno-unknown-pragmas -g -std=c99 -ffast-math -fstrict-aliasing -Wstrict-aliasing=2")
  25. find_package(Mruby REQUIRED)
  26. # Finds Allegro using pkgconfig, so it must be configured correctly
  27. find_package(Allegro5 REQUIRED)
  28. find_package(PNG REQUIRED)
  29. find_package(JPEG REQUIRED)
  30. # Set include and lib dirs.
  31. include_directories(${ALLEGRO_INCLUDE_DIR} ${PNG_INCLUDE_DIR} ${JPEG_INCLUDE_DIR} ${MRUBY_INCLUDE_DIR})
  32. set(ERUTA_LIBS ${LIBS} ${OBJC_LIBRARIES} ${ALLEGRO_LIBRARIES} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${MRUBY_LIBRARIES})
  33. include_directories("include")
  34. # add_subdirectory("src")
  35. include(ErutaFiles)
  36. set_source_files_properties(${ERUTA_SRC_FILES} PROPERTIES LANGUAGE C)
  37. # set_source_files_properties(${ERUTA_OBJC_SRC_FILES} PROPERTIES LANGUAGE C)
  38. # src/BNObject.m
  39. # set_source_files_properties(BNObject.m PROPERTIES LANGUAGE C)
  40. # eruta exe in the bin subdir (first one should work, but doesnt, hmmm...)
  41. set(RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
  42. set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
  43. add_library(ERUTA_OBJECTS OBJECT ${ERUTA_SRC_FILES})
  44. add_executable(eruta $<TARGET_OBJECTS:ERUTA_OBJECTS> src/main.c)
  45. target_link_libraries(eruta ${ERUTA_LIBS})
  46. enable_testing()
  47. # Let ctest run valgrind
  48. # test exe in the test subdir (first one should work, but doesnt, hmmm...)
  49. set(CMAKE_CTEST_OPTIONS --output-on-failure)
  50. set(CTEST_OUTPUT_ON_FAILURE TRUE)
  51. set(CTEST_MEMORYCHECK_COMMAND:FILEPATH "/usr/bin/valgrind")
  52. add_subdirectory("test")