12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- cmake_minimum_required(VERSION 3.1.3)
-
- set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build (Debug or Release)")
- if ( NOT CMAKE_INSTALL_PREFIX )
- set(CMAKE_INSTALL_PREFIX "/usr")
- endif()
-
- project(slop)
-
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/")
-
- set( CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Directory where man pages reside. (/usr/share/man, /usr/local/share/man, etc.)" )
-
- set( CMAKE_COMPRESS_MAN TRUE CACHE BOOL "Whether or not to compress the man pages for install." )
-
- if ( CMAKE_COMPRESS_MAN )
- set( MANTARGET "slop.1.gz" )
- else()
- set( MANTARGET "slop.1" )
- endif()
-
- include_directories("${PROJECT_BINARY_DIR}")
-
- add_definitions(-DSLOP_VERSION="v7.3.48")
-
- # The names have to be unique unfortunately.
- set(EXECUTABLE_NAME "slop")
- set(LIBRARY_NAME "slopy")
-
- add_library(${LIBRARY_NAME} SHARED src/mouse.cpp
- src/keyboard.cpp
- src/x.cpp
- src/slopstates.cpp
- src/framebuffer.cpp
- src/resource.cpp
- src/shader.cpp
- src/window.cpp
- src/slop.cpp
- src/rectangle.cpp
- src/xshaperectangle.cpp
- src/glrectangle.cpp)
-
- set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
- set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_STANDARD 11)
-
- add_executable(${EXECUTABLE_NAME} src/main.cpp)
-
- set_property(TARGET ${EXECUTABLE_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
- set_property(TARGET ${EXECUTABLE_NAME} PROPERTY CXX_STANDARD 11)
-
- set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/modules" )
-
- find_package(GLEW REQUIRED)
- find_package(GLM REQUIRED)
- find_package(X11 REQUIRED)
- find_package(XExt REQUIRED)
- find_package(GLX REQUIRED)
- find_package(OpenGL REQUIRED)
- find_package(XRender REQUIRED)
- # Ahhhh, finally this eliminates the segfault on preload.
- find_package(Threads REQUIRED)
-
- include_directories(${X11_INCLUDE_DIR}
- ${GLEW_INCLUDE_DIR}
- ${GLM_INCLUDE_DIR}
- ${XEXT_INCLUDE_DIR}
- ${GLX_INCLUDE_DIR}
- ${XRENDER_INCLUDE_DIR}
- ${OPENGL_INCLUDE_DIR})
-
- target_link_libraries(${LIBRARY_NAME} ${X11_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
- ${GLM_LIBRARIES}
- ${OPENGL_LIBRARIES}
- ${GLX_LIBRARY}
- ${XRENDER_LIBRARY}
- ${XEXT_LIBRARIES}
- ${GLEW_LIBRARIES})
-
- target_link_libraries(${EXECUTABLE_NAME} ${LIBRARY_NAME} )
-
- find_package(ICU COMPONENTS uc)
- set( SLOP_UNICODE TRUE CACHE BOOL "To enable or disable unicode support." )
- if ( SLOP_UNICODE AND ICU_FOUND )
- # ICU is required for old nvidia drivers to work for whatever reason.
- add_definitions(-DCXXOPTS_USE_UNICODE)
- include_directories( ${ICU_INCLUDE_DIR} )
- target_link_libraries(${EXECUTABLE_NAME} ${ICU_UC_LIBRARIES} )
- endif()
-
- install( TARGETS ${EXECUTABLE_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" )
- install( TARGETS ${LIBRARY_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" )
- install( FILES ${CMAKE_SOURCE_DIR}/src/slop.hpp DESTINATION "${CMAKE_INSTALL_PREFIX}/include" COMPONENT development )
- install( FILES "${CMAKE_SOURCE_DIR}/${MANTARGET}" DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" COMPONENT doc )
|