CMakeLists.txt 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. cmake_minimum_required( VERSION 2.8 )
  2. set( PROJECT_NAME "slop" )
  3. set( BIN_TARGET "${PROJECT_NAME}" )
  4. set( CMAKE_INSTALL_PREFIX "/usr/bin" )
  5. project( ${PROJECT_NAME} )
  6. # Linux compiler initialization.
  7. if ( CMAKE_COMPILER_IS_GNUCXX )
  8. set( CMAKE_CXX_FLAGS
  9. "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -pedantic-errors -Wno-unused-parameter" )
  10. # -Wall: Enable all warnings.
  11. # -Wextra: Enable some more warnings.
  12. # -Werror: Have errors on warnings.
  13. # -Wno-unused-parameter: Prevent unused variable warning. (Several functions are required to have unecessary variables because X11.)
  14. add_definitions( -D_CMAKE_LINUX_ )
  15. else()
  16. message( FATAL_ERROR "Your operating system isn't supported yet! CMake will now exit." )
  17. endif()
  18. # Add a check target for our makefile.
  19. find_program( CPPCHECK_EXECUTABLE cppcheck
  20. DOC "A tool for static C/C++ code analysis." )
  21. if (CPPCHECK_EXECUTABLE)
  22. add_custom_target( "check"
  23. COMMAND "${CPPCHECK_EXECUTABLE}" "--enable=all" "*"
  24. WORKING_DIRECTORY src VERBATIM )
  25. endif()
  26. # Sources
  27. set( source
  28. src/cmdline.c
  29. src/rectangle.cpp
  30. src/x.cpp
  31. src/main.cpp )
  32. # Obtain library paths and make sure they exist.
  33. set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmakemodules" )
  34. find_package( X11 REQUIRED )
  35. find_package( XExt REQUIRED )
  36. set( CMAKE_CXX_FLAGS
  37. "${CMAKE_CXX_FLAGS} ${CMAKE_IMLIB2_CXX_FLAGS}" )
  38. # Includes
  39. include_directories( ${X11_INCLUDE_DIR}
  40. ${XEXT_INCLUDE_DIR} )
  41. # Executable
  42. add_executable( ${BIN_TARGET} ${source} )
  43. # Libraries
  44. target_link_libraries( ${BIN_TARGET}
  45. ${X11_LIBRARIES}
  46. ${XEXT_LIBRARY} )
  47. install( TARGETS ${BIN_TARGET}
  48. DESTINATION ${CMAKE_INSTALL_PREFIX} )