| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 | 
							- # LaGUI CMake config file.
 
- get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
 
- include(${SELF_DIR}/lagui-targets.cmake)
 
- get_filename_component(LAGUI_INCLUDE_DIRS "${SELF_DIR}/../../include/lagui" ABSOLUTE)
 
- if (POLICY CMP0072)
 
-   set(OpenGL_GL_PREFERENCE GLVND)
 
- endif()
 
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR})
 
- SET(LAGUI_USE_GLES false CACHE BOOL "Whether to use GLES in LaGUI")
 
- if(${LAGUI_USE_GLES})
 
-     add_definitions(-DLA_USE_GLES)
 
-     set(LAGUI_GL_LIB ${OPENGL_egl_LIBRARY} ${OPENGL_gles2_LIBRARY} ${OPENGL_opengl_LIBRARY})
 
- else()
 
-     set(LAGUI_GL_LIB ${OPENGL_glx_LIBRARY} ${OPENGL_opengl_LIBRARY})
 
- endif()
 
- find_package(OpenGL REQUIRED)
 
- find_package(X11 REQUIRED)
 
- find_package(Freetype REQUIRED)
 
- find_package(GLEW REQUIRED)
 
- find_package(PNG)
 
- find_package(LuaJIT)
 
- if (APPLE)
 
-     find_package(GLFW3 REQUIRED)
 
- endif()
 
- set(CMAKE_THREAD_PREFER_PTHREAD ON)
 
- set(THREADS_PREFER_PTHREAD_FLAG ON)
 
- find_package(Threads REQUIRED)
 
- SET(LAGUI_USE_LUAJIT true CACHE BOOL "Whether to use LuaJIT in LaGUI")
 
- if(${LuaJIT_FOUND} AND ${LAGUI_USE_LUAJIT})
 
-     add_definitions(-DLA_WITH_LUAJIT)
 
- endif()
 
- SET(LAGUI_USE_PNG true CACHE BOOL "Whether to use LuaJIT in LaGUI")
 
- if(${PNG_FOUND} AND ${LAGUI_USE_PNG})
 
-     add_definitions(-DLA_WITH_PNG)
 
- endif()
 
- if (CMAKE_SYSTEM_NAME MATCHES "Linux")
 
-     set(LAGUI_SHARED_LIBS
 
-         ${OPENGL_LIBRARY}
 
-         ${X11_LIBRARIES}
 
-         ${X11_X11_LIB}
 
-         ${GLEW_LIBRARIES}
 
-         ${LAGUI_GL_LIB}
 
-         ${FREETYPE_LIBRARIES}
 
-         ${X11_Xfixes_LIB}
 
-         ${X11_Xrandr_LIB}
 
-         m X11 Xi Xcursor
 
-         ${CMAKE_DL_LIBS}
 
-         Threads::Threads
 
-         ${LUA_LIBRARY}
 
-         lagui
 
-         CACHE INTERNAL "LaGUI shared libs"
 
-     )
 
-     set(LAGUI_INCLUDE_DIRS_ALL
 
-         ${OPENGL_LIBRARY}
 
-         ${CMAKE_SOURCE_DIR}
 
-         ${X11_INCLUDE_DIR}
 
-         ${GLEW_INCLUDE_PATH}
 
-         ${FREETYPE_INCLUDE_DIRS}
 
-         ${LAGUI_INCLUDE_DIRS}
 
-         CACHE INTERNAL "Include dirs of LaGUI and dependencies"
 
-     )
 
-     if(${LuaJIT_FOUND})
 
-         list(APPEND LAGUI_SHARED_LIBS ${LUA_LIBRARY})
 
-         list(APPEND LAGUI_INCLUDE_DIRS_ALL ${LUA_INCLUDE_DIR})
 
-     endif()
 
-     if(${PNG_FOUND})
 
-         list(APPEND LAGUI_SHARED_LIBS ${PNG_LIBRARY})
 
-         list(APPEND LAGUI_INCLUDE_DIRS_ALL ${PNG_INCLUDE_DIR})
 
-     endif()
 
- elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
 
-     set(LAGUI_SHARED_LIBS
 
-         ${OPENGL_LIBRARY}
 
-         ${GLEW_LIBRARIES}
 
-         ${LAGUI_GL_LIB}
 
-         ${FREETYPE_LIBRARIES}
 
-         m
 
-         ${GLFW3_LIBRARIES}
 
-         ${CMAKE_DL_LIBS}
 
-         Threads::Threads
 
-         ${LUA_LIBRARY}
 
-         lagui
 
-         CACHE INTERNAL "LaGUI shared libs"
 
-     )
 
-     set(LAGUI_INCLUDE_DIRS_ALL
 
-         ${OPENGL_LIBRARY}
 
-         ${CMAKE_SOURCE_DIR}
 
-         ${GLEW_INCLUDE_PATH}
 
-         ${FREETYPE_INCLUDE_DIRS}
 
-         ${LAGUI_INCLUDE_DIRS}
 
-         CACHE INTERNAL "Include dirs of LaGUI and dependencies"
 
-     )
 
-     if(${LuaJIT_FOUND})
 
-         list(APPEND LAGUI_SHARED_LIBS ${LUA_LIBRARY})
 
-         list(APPEND LAGUI_INCLUDE_DIRS_ALL ${LUA_INCLUDE_DIR})
 
-     endif()
 
-     if(${PNG_FOUND})
 
-         list(APPEND LAGUI_SHARED_LIBS ${PNG_LIBRARY})
 
-         list(APPEND LAGUI_INCLUDE_DIRS_ALL ${PNG_INCLUDE_DIR})
 
-     endif()
 
- elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
 
-     set(LAGUI_SHARED_LIBS
 
-         ${GLEW_LIBRARIES}
 
-         ${OPENGL_LIBRARY}
 
-         ${FREETYPE_LIBRARIES}
 
-         ${CMAKE_DL_LIBS}
 
-         Threads::Threads
 
-         lagui shlwapi Shcore
 
-         CACHE INTERNAL "LaGUI shared libs"
 
-     )
 
-     set(LAGUI_INCLUDE_DIRS_ALL
 
-         ${CMAKE_SOURCE_DIR}
 
-         ${GLEW_INCLUDE_PATH}
 
-         ${FREETYPE_INCLUDE_DIRS}
 
-         ${LAGUI_INCLUDE_DIRS}
 
-         CACHE INTERNAL "Include dirs of LaGUI and dependencies"
 
-     )
 
-     if(${LuaJIT_FOUND})
 
-         list(APPEND LAGUI_SHARED_LIBS ${LUA_LIBRARY})
 
-         list(APPEND LAGUI_INCLUDE_DIRS_ALL ${LUA_INCLUDE_DIR})
 
-     endif()
 
-     if(${PNG_FOUND})
 
-         list(APPEND LAGUI_SHARED_LIBS ${PNG_LIBRARY})
 
-         list(APPEND LAGUI_INCLUDE_DIRS_ALL ${PNG_INCLUDE_DIR})
 
-     endif()
 
- endif()
 
- # Build Types
 
- set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}
 
-     CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel tnsan asan lsan msan ubsan"
 
-     FORCE)
 
- # ThreadSanitizer
 
- set(CMAKE_C_FLAGS_TSAN
 
-     "-fsanitize=thread -g -O1"
 
-     CACHE STRING "Flags used by the C compiler during ThreadSanitizer builds."
 
-     FORCE)
 
- set(CMAKE_CXX_FLAGS_TSAN
 
-     "-fsanitize=thread -g -O1"
 
-     CACHE STRING "Flags used by the C++ compiler during ThreadSanitizer builds."
 
-     FORCE)
 
- # AddressSanitize
 
- set(CMAKE_C_FLAGS_ASAN
 
-     "-fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g"
 
-     CACHE STRING "Flags used by the C compiler during AddressSanitizer builds."
 
-     FORCE)
 
- set(CMAKE_CXX_FLAGS_ASAN
 
-     "-fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g"
 
-     CACHE STRING "Flags used by the C++ compiler during AddressSanitizer builds."
 
-     FORCE)
 
- # LeakSanitizer
 
- set(CMAKE_C_FLAGS_LSAN
 
-     "-fsanitize=leak -fno-omit-frame-pointer -g"
 
-     CACHE STRING "Flags used by the C compiler during LeakSanitizer builds."
 
-     FORCE)
 
- set(CMAKE_CXX_FLAGS_LSAN
 
-     "-fsanitize=leak -fno-omit-frame-pointer -g"
 
-     CACHE STRING "Flags used by the C++ compiler during LeakSanitizer builds."
 
-     FORCE)
 
- # MemorySanitizer
 
- set(CMAKE_C_FLAGS_MSAN
 
-     "-fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g"
 
-     CACHE STRING "Flags used by the C compiler during MemorySanitizer builds."
 
-     FORCE)
 
- set(CMAKE_CXX_FLAGS_MSAN
 
-     "-fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g"
 
-     CACHE STRING "Flags used by the C++ compiler during MemorySanitizer builds."
 
-     FORCE)
 
- # UndefinedBehaviour
 
- set(CMAKE_C_FLAGS_UBSAN
 
-     "-fsanitize=undefined"
 
-     CACHE STRING "Flags used by the C compiler during UndefinedBehaviourSanitizer builds."
 
-     FORCE)
 
- set(CMAKE_CXX_FLAGS_UBSAN
 
-     "-fsanitize=undefined"
 
-     CACHE STRING "Flags used by the C++ compiler during UndefinedBehaviourSanitizer builds."
 
- 	FORCE)
 
- set(LAGUI_FONTS
 
-     "NotoEmoji-Regular.ttf"
 
-     "NotoSansCJK-Regular.ttc"
 
-     "NotoSansMono-Regular.ttf"
 
-     "NotoSansSymbols-Regular.ttf"
 
-     "NotoSansSymbols2-Regular.ttf"
 
- )
 
 
  |