# # CMake Buildsystem for Agar. # if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) message(FATAL_ERROR "Prevented in-tree build. Please create a build directory outside of the Agar source code and run \"cmake -S ${CMAKE_SOURCE_DIR} -B .\" from there") endif() cmake_minimum_required(VERSION 3.12.0) project(AGAR VERSION 1.7.1 DESCRIPTION "Agar GUI System" HOMEPAGE_URL "https://libagar.org" LANGUAGES C CXX OBJC) set(AGAR_RELEASE_NAME "Ancient Egypt") set(AGAR_LIBRARY_VERSION_MAJOR 8) set(AGAR_LIBRARY_VERSION "${AGAR_LIBRARY_VERSION_MAJOR}.0.0") add_library(agar-build-options INTERFACE) target_compile_definitions(agar-build-options INTERFACE _AGAR_INTERNAL) target_compile_definitions(agar-build-options INTERFACE _DEFAULT_SOURCE) target_compile_definitions(agar-build-options INTERFACE _BSD_SOURCE) if(APPLE) target_compile_definitions(agar-build-options INTERFACE _DARWIN_C_SOURCE) endif() if(WINDOWS_STORE) target_compile_definitions(agar-build-options INTERFACE AGAR_BUILDING_WINRT=1) target_compile_options(agar-build-options INTERFACE "-ZW") endif() if(MSVC) target_compile_definitions(agar-build-options INTERFACE _CRT_SECURE_NO_WARNINGS) target_compile_definitions(agar-build-options INTERFACE _CRT_SECURE_NO_DEPRECATE) target_compile_options(agar-build-options INTERFACE "/MP") endif() # # Standard CMake libraries # include(CheckLibraryExists) include(CheckIncludeFiles) include(CheckIncludeFile) include(CheckSymbolExists) include(CheckCSourceCompiles) include(CheckCSourceRuns) include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) include(CheckOBJCSourceCompiles) include(CheckTypeSize) include(CheckStructHasMember) include(CMakeDependentOption) include(FindPkgConfig) include(GNUInstallDirs) # # Imported BSDBuild tests (generated by "make configure"). # set(CMAKE_MODULE_PATH "${AGAR_SOURCE_DIR}") set(CONFIG_DIR "${AGAR_BINARY_DIR}/include/agar/config") include("${CMAKE_CURRENT_SOURCE_DIR}/CMakeChecks.cmake") # Detect known platforms. BB_Detect_Platform() message(STATUS " _ _ _ ___") message(STATUS " / _ \\ / _ \\ / _ \\ | _ \\") message(STATUS " | |_| | | (_| | | |_| | | |_) |") message(STATUS " |_| |_| \\__, | |_| |_| |_| |_|") message(STATUS " |___/ ") message(STATUS "") message(STATUS "Agar version ${AGAR_VERSION} (\"${AGAR_RELEASE_NAME}\") in ${AGAR_SOURCE_DIR}") # # Agar build option defaults # set(SIZEOF_VOIDP ${CMAKE_SIZEOF_VOID_P}) if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(ARCH_64 TRUE) # # Default to the Large memory model on 64-bit. It is still possible for # 64-bit platforms to use the Medium model (e.g., for lower memory utilization). # set(AGAR_DEFAULT_MEMORY_MODEL "L") else() set(ARCH_64 FALSE) # # Default to the Medium memory model on 32-bit. It is still possible for # 32-bit platforms to use the Large model (e.g., for Deep Color support). # set(AGAR_DEFAULT_MEMORY_MODEL "M") endif() set(AGAR_SHARED_ENABLED_BY_DEFAULT ON) set(AGAR_STATIC_ENABLED_BY_DEFAULT ON) set(AGAR_THREADS_ENABLED_BY_DEFAULT ON) set(AGAR_GUI_ENABLED_BY_DEFAULT ON) if(AGAR_MINIMAL) foreach(agar_lib_def AU MAP MATH NET SG SK VG) set(AGAR_${agar_lib_def}_ENABLED_BY_DEFAULT OFF) endforeach() else() foreach(agar_lib_def AU MAP MATH NET SG SK VG) set(AGAR_${agar_lib_def}_ENABLED_BY_DEFAULT ON) endforeach() endif() if(EMSCRIPTEN) set(AGAR_SHARED_ENABLED_BY_DEFAULT OFF) # # Emscripten threads are not yet supported on all browsers. # Default to OFF for and expect the user to set it if needed. # set(AGAR_THREADS_ENABLED_BY_DEFAULT OFF) endif() if(VITA OR PSP) set(AGAR_SHARED_ENABLED_BY_DEFAULT OFF) endif() if(NOT DEFINED AGAR_SHARED_ENABLED_BY_DEFAULT) set(AGAR_SHARED_ENABLED_BY_DEFAULT OFF) if(NOT DEFINED BUILD_SHARED_LIBS) set(AGAR_SHARED_ENABLED_BY_DEFAULT ON) elseif(BUILD_SHARED_LIBS) set(AGAR_SHARED_ENABLED_BY_DEFAULT ON) set(AGAR_STATIC_ENABLED_BY_DEFAULT OFF) endif() endif() set(AGAR_GLOBAL_CFLAGS "") set(AGAR_GLOBAL_LIBS "") set(AGAR_CORE_CFLAGS "") set(AGAR_CORE_LIBS "") set(AGAR_GUI_CFLAGS "") set(AGAR_GUI_LIBS "") set(AGAR_AU_CFLAGS "") set(AGAR_AU_LIBS "") set(AGAR_MAP_CFLAGS "") set(AGAR_MAP_LIBS "") set(AGAR_MATH_CFLAGS "") set(AGAR_MATH_LIBS "") set(AGAR_NET_CFLAGS "") set(AGAR_NET_LIBS "") set(AGAR_SG_CFLAGS "") set(AGAR_SG_LIBS "") set(AGAR_SK_CFLAGS "") set(AGAR_SK_LIBS "") set(AGAR_VG_CFLAGS "") set(AGAR_VG_LIBS "") # # Which Agar libraries to build? # option(AGAR_MINIMAL "Build only Agar-Core and Agar-GUI by default" OFF) option(AGAR_GUI "Build the Agar-GUI library (the Agar GUI system)" ${AGAR_GUI_ENABLED_BY_DEFAULT}) option(AGAR_AU "Build the Agar-AU library (audio extensions)" ${AGAR_AU_ENABLED_BY_DEFAULT}) option(AGAR_MAP "Build the Agar-MAP library (2D/3D tile engine)" ${AGAR_MAP_ENABLED_BY_DEFAULT}) option(AGAR_MATH "Build the Agar-Math library (math extensions)" ${AGAR_MATH_ENABLED_BY_DEFAULT}) option(AGAR_NET "Build the Agar-Net library (network access methods)" ${AGAR_NET_ENABLED_BY_DEFAULT}) option(AGAR_SG "Build the Agar-SG library (3D scene-graph engine)" ${AGAR_SG_ENABLED_BY_DEFAULT}) option(AGAR_SK "Build the Agar-SK library (sketching engine)" ${AGAR_SK_ENABLED_BY_DEFAULT}) option(AGAR_VG "Build the Agar-VG library (vector graphics extensions)" ${AGAR_VG_ENABLED_BY_DEFAULT}) # # Global Agar build options. # set(AGAR_MEMORY_MODEL ${AGAR_DEFAULT_MEMORY_MODEL} CACHE STRING "Agar memory model (S|M|L)") option(AGAR_FLOAT "Floating-point support" ON) option(AGAR_SHARED "Build a shared version of the library" ${AGAR_SHARED_ENABLED_BY_DEFAULT}) option(AGAR_STATIC "Build a static version of the library" ${AGAR_STATIC_ENABLED_BY_DEFAULT}) option(AGAR_STATIC_PIC "Build the static library as Position Independent Code" OFF) option(AGAR_WARNINGS "Use recommended compiler warnings" OFF) option(AGAR_TYPE_SAFETY "Run-time type safety checks (implied by Debug)" OFF) option(AGAR_DEBUG_SURFACES "Trace AG_Surface operations (expensive)" OFF) option(AGAR_LEGACY "Enable obsolete and deprecated interfaces" ON) option(AGAR_THREADS "Thread safety and multithreading support" ${AGAR_THREADS_ENABLED_BY_DEFAULT}) option(AGAR_ATTRIBUTES "Enable compiler attributes and annotations" ON) option(AGAR_INLINE_FUNCTIONS "Enable inline functions as appropriate" ON) option(AGAR_NLS "Enable internationalization and localization" OFF) # # Options specific to Agar-Core. # option(AGAR_DB_BDB "Berkeley DB (hash and btree) support in AG_Db(3)" OFF) option(AGAR_DB_MYSQL "MySQL client support in AG_Db(3)" OFF) option(AGAR_ENABLE_ANSI_COLOR "Support for ANSI color output" ON) option(AGAR_ENABLE_DSO "Dynamically-loaded modules and object classes" ON) option(AGAR_ENABLE_EXEC "The AG_Execute(3) interface" ON) option(AGAR_ENABLE_EVENT_LOOP "The standard AG_EventLoop(3) routine" ON) option(AGAR_ENABLE_NAMESPACES "Support for AG_Object namespaces" ON) option(AGAR_ENABLE_NAMED_ARGS "Support for named AG_Event arguments" ON) option(AGAR_ENABLE_SERIALIZATION "Support for file and I/O serialization" ON) option(AGAR_ENABLE_STRING "The AG_Printf(3) formatting engine" ON) option(AGAR_ENABLE_TIMERS "The AG_Timer(3) interface" ON) option(AGAR_ENABLE_UNICODE "Support for Unicode" ON) option(AGAR_ENABLE_USER "The AG_User(3) interface" ON) option(AGAR_ENABLE_VERBOSITY "Verbose error messages" ON) # # Options specific to Agar-GUI. # option(AGAR_ENABLE_WIDGETS "Build the set of standard GUI widgets" ON) option(AGAR_ENABLE_WM_HINTS "Enable interaction with Window Managers" ON) option(AGAR_GUI_SDL "SDL 1.2 support in GUI (sdlfb, sdlgl drivers)" ON) option(AGAR_GUI_SDL2 "SDL 2.0 support in GUI (sdl2fb, sdl2gl and sdl2mw drivers)" ON) option(AGAR_GUI_OPENGL "OpenGL support in GUI (recommended)" ON) option(AGAR_GUI_X11 "X Windows support in GUI (glx driver)" ON) option(AGAR_GUI_XINERAMA "Support Xinerama extension in glx driver" ON) option(AGAR_GUI_COCOA "MacOS X Cocoa support (cocoa driver)" ON) option(AGAR_GUI_FREETYPE "Use the FreeType font engine (recommended)" ON) option(AGAR_GUI_FONTCONFIG "Use fontconfig library to access system fonts" ON) option(AGAR_GUI_JPEG "Support for image files in JPEG format" ON) option(AGAR_GUI_PNG "Support for image files in PNG format" ON) # # Options specific to Agar-Math. # option(AGAR_MATH_SSE "Enable inline SSE/SSE2/SSE3 optimizations" OFF) set(AGAR_MATH_PRECISION "DOUBLE" CACHE STRING "Precision of M_Real type (SINGLE|DOUBLE|QUAD)") # # Options specific to Agar-Net. # option(AGAR_NET_WEB "Enable HTTP application server in Agar-Net" OFF) BB_Save_Define_Value(VERSION ${AGAR_VERSION}) BB_Save_Define_Value(RELEASE ${AGAR_RELEASE_NAME}) # # Select the Agar memory model. # if("${AGAR_MEMORY_MODEL}" STREQUAL "S") BB_Save_Define_Value_Bare(AG_MODEL "AG_SMALL") BB_Save_MakeVar(MEMORY_MODEL "SMALL") elseif("${AGAR_MEMORY_MODEL}" STREQUAL "M") BB_Save_Define_Value_Bare(AG_MODEL "AG_MEDIUM") BB_Save_MakeVar(MEMORY_MODEL "MEDIUM") else() BB_Save_Define_Value_Bare(AG_MODEL "AG_LARGE") BB_Save_MakeVar(MEMORY_MODEL "LARGE") endif() # # Set recommended compiler warnings. # if(AGAR_WARNINGS) list(APPEND AGAR_GLOBAL_CFLAGS "-Wall -Werror -Wmissing-prototypes -Wno-switch") if(DARWIN) list(APPEND AGAR_GLOBAL_CFLAGS "-Wno-deprecated-declarations") endif() endif() # # Set build definitions from the requested options. # if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") BB_Save_Define(AG_DEBUG) BB_Save_Define(AG_TYPE_SAFETY) else() BB_Save_Undef(AG_DEBUG) if(AGAR_TYPE_SAFETY) BB_Save_Define(AG_TYPE_SAFETY) else() BB_Save_Undef(AG_TYPE_SAFETY) endif() endif() if(AGAR_DEBUG_SURFACES) list(APPEND AGAR_GUI_CFLAGS "-DDEBUG_SURFACES") endif() if(AGAR_ENABLE_ANSI_COLOR) BB_Save_Define(AG_ANSI_COLOR) else() BB_Save_Undef(AG_ANSI_COLOR) endif() if(AGAR_ENABLE_DSO) BB_Save_Define(AG_ENABLE_DSO) else() BB_Save_Undef(AG_ENABLE_DSO) endif() if(AGAR_ENABLE_EXEC) BB_Save_Define(AG_ENABLE_EXEC) else() BB_Save_Undef(AG_ENABLE_EXEC) endif() if(AGAR_ENABLE_EVENT_LOOP) BB_Save_Define(AG_EVENT_LOOP) else() BB_Save_Undef(AG_EVENT_LOOP) endif() if(AGAR_ENABLE_NAMESPACES) BB_Save_Define(AG_NAMESPACES) else() BB_Save_Undef(AG_NAMESPACES) endif() if(AGAR_ENABLE_NAMED_ARGS) BB_Save_Define(AG_NAMED_ARGS) else() BB_Save_Undef(AG_NAMED_ARGS) endif() if(AGAR_ENABLE_SERIALIZATION) BB_Save_Define(AG_SERIALIZATION) else() BB_Save_Undef(AG_SERIALIZATION) endif() if(AGAR_ENABLE_STRING) BB_Save_Define(AG_ENABLE_STRING) else() BB_Save_Undef(AG_ENABLE_STRING) endif() if(AGAR_ENABLE_TIMERS) BB_Save_Define(AG_TIMERS) else() BB_Save_Undef(AG_TIMERS) endif() if(AGAR_ENABLE_UNICODE) BB_Save_Define(AG_UNICODE) else() BB_Save_Undef(AG_UNICODE) endif() if(AGAR_ENABLE_USER) BB_Save_Define(AG_USER) else() BB_Save_Undef(AG_USER) endif() if(AGAR_ENABLE_VERBOSITY) BB_Save_Define(AG_VERBOSITY) else() BB_Save_Undef(AG_VERBOSITY) endif() if(AGAR_ENABLE_WIDGETS) BB_Save_Define(AG_WIDGETS) else() BB_Save_Undef(AG_WIDGETS) endif() if(AGAR_ENABLE_WM_HINTS) BB_Save_Define(AG_WM_HINTS) else() BB_Save_Undef(AG_WM_HINTS) endif() if(AGAR_LEGACY) BB_Save_Define(AG_LEGACY) else() BB_Save_Undef(AG_LEGACY) endif() # # C Include Preparation. # message(STATUS "Preprocessing C includes files") file(MAKE_DIRECTORY "${AGAR_BINARY_DIR}/include") file(MAKE_DIRECTORY "${AGAR_BINARY_DIR}/include/agar") file(MAKE_DIRECTORY "${AGAR_BINARY_DIR}/include/agar/config") foreach(agar_include_subdir core au gui map math net sg sk vg) file(MAKE_DIRECTORY "${AGAR_BINARY_DIR}/include/agar/${agar_include_subdir}") endforeach() include(FindPerl) if(PERL_EXECUTABLE) # # If we have a perl, preprocess include files such that declarations enclosed in # __BEGIN_DECLS and __END_DECLS are automatically tagged with platform-specific # keywords as needed. # execute_process(COMMAND ${PERL_EXECUTABLE} "${AGAR_SOURCE_DIR}/mk/gen-includes.pl" "${AGAR_BINARY_DIR}/include/agar" WORKING_DIRECTORY ${AGAR_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY) else() # # If perl is unavailable, copy include files as-is. # foreach(agar_include_subdir core au gui map math net sg sk vg) file(GLOB agar_include_files ${AGAR_SOURCE_DIR}/${agar_include_subdir}/*.h) foreach(agar_include_file ${agar_include_files}) file(COPY ${agar_include_file} DESTINATION ${AGAR_BINARY_DIR}/include/agar/${agar_include_subdir}) endforeach() endforeach() endif() foreach(agar_incl core au gui map net sg sk vg) file(COPY_FILE ${AGAR_BINARY_DIR}/include/agar/${agar_incl}/${agar_incl}_pub.h ${AGAR_BINARY_DIR}/include/agar/${agar_incl}.h) endforeach() set(AGAR_CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Name suffix for debug builds") mark_as_advanced(CMAKE_IMPORT_LIBRARY_SUFFIX AGAR_CMAKE_DEBUG_POSTFIX) set(LIBRARY_OUTPUT_DIRECTORY "build") if(WINDOWS) set(CMAKE_SHARED_LIBRARY_PREFIX "") endif() set(ORIG_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) # On Cygwin, build without Cygwin dependencies. if(CYGWIN) target_include_directories(agar-build-options INTERFACE "/usr/include/mingw") set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -mno-cygwin") check_c_source_compiles("int main(int argc, char **argv) {}" HAVE_GCC_NO_CYGWIN) set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) if(HAVE_GCC_NO_CYGWIN) list(APPEND AGAR_GLOBAL_CFLAGS "-mno-cygwin") list(APPEND EXTRA_LDFLAGS "-mno-cygwin") endif() list(APPEND AGAR_GLOBAL_CFLAGS "-I/usr/include/mingw") endif() # Use our generated C includes. target_include_directories(agar-build-options BEFORE INTERFACE "${AGAR_BINARY_DIR}/include") # # Agar-Core Sources. # set(SOURCE_FILES_CORE ${AGAR_SOURCE_DIR}/core/byteswap.c ${AGAR_SOURCE_DIR}/core/config.c ${AGAR_SOURCE_DIR}/core/core.c ${AGAR_SOURCE_DIR}/core/cpuinfo.c ${AGAR_SOURCE_DIR}/core/crc32.c ${AGAR_SOURCE_DIR}/core/data_source.c ${AGAR_SOURCE_DIR}/core/db.c ${AGAR_SOURCE_DIR}/core/dir.c ${AGAR_SOURCE_DIR}/core/dso.c ${AGAR_SOURCE_DIR}/core/error.c ${AGAR_SOURCE_DIR}/core/event.c ${AGAR_SOURCE_DIR}/core/exec.c ${AGAR_SOURCE_DIR}/core/file.c ${AGAR_SOURCE_DIR}/core/getopt.c ${AGAR_SOURCE_DIR}/core/load_integral.c ${AGAR_SOURCE_DIR}/core/load_real.c ${AGAR_SOURCE_DIR}/core/load_string.c ${AGAR_SOURCE_DIR}/core/load_version.c ${AGAR_SOURCE_DIR}/core/object.c ${AGAR_SOURCE_DIR}/core/string.c ${AGAR_SOURCE_DIR}/core/tbl.c ${AGAR_SOURCE_DIR}/core/text.c ${AGAR_SOURCE_DIR}/core/time.c ${AGAR_SOURCE_DIR}/core/time_dummy.c ${AGAR_SOURCE_DIR}/core/timeout.c ${AGAR_SOURCE_DIR}/core/threads.c ${AGAR_SOURCE_DIR}/core/vasprintf.c ${AGAR_SOURCE_DIR}/core/vsnprintf.c ${AGAR_SOURCE_DIR}/core/user.c ${AGAR_SOURCE_DIR}/core/user_dummy.c ${AGAR_SOURCE_DIR}/core/user_getenv.c ${AGAR_SOURCE_DIR}/core/variable.c ${AGAR_SOURCE_DIR}/core/vec.c) # # Agar-GUI Sources. # set(SOURCE_FILES_GUI ${AGAR_SOURCE_DIR}/gui/box.c ${AGAR_SOURCE_DIR}/gui/button.c ${AGAR_SOURCE_DIR}/gui/checkbox.c ${AGAR_SOURCE_DIR}/gui/colors.c ${AGAR_SOURCE_DIR}/gui/combo.c ${AGAR_SOURCE_DIR}/gui/console.c ${AGAR_SOURCE_DIR}/gui/controller.c ${AGAR_SOURCE_DIR}/gui/cursors.c ${AGAR_SOURCE_DIR}/gui/debugger.c ${AGAR_SOURCE_DIR}/gui/dev_browser.c ${AGAR_SOURCE_DIR}/gui/dev_classinfo.c ${AGAR_SOURCE_DIR}/gui/dev_config.c ${AGAR_SOURCE_DIR}/gui/dev_fonts.c ${AGAR_SOURCE_DIR}/gui/dev_object_edit.c ${AGAR_SOURCE_DIR}/gui/dev_timer_inspector.c ${AGAR_SOURCE_DIR}/gui/dev_unicode_browser.c ${AGAR_SOURCE_DIR}/gui/dir_dlg.c ${AGAR_SOURCE_DIR}/gui/drv.c ${AGAR_SOURCE_DIR}/gui/drv_dummy.c ${AGAR_SOURCE_DIR}/gui/drv_mw.c ${AGAR_SOURCE_DIR}/gui/drv_sw.c ${AGAR_SOURCE_DIR}/gui/editable.c ${AGAR_SOURCE_DIR}/gui/file_dlg.c ${AGAR_SOURCE_DIR}/gui/fixed.c ${AGAR_SOURCE_DIR}/gui/fixed_plotter.c ${AGAR_SOURCE_DIR}/gui/font_selector.c ${AGAR_SOURCE_DIR}/gui/font.c ${AGAR_SOURCE_DIR}/gui/font_bf.c ${AGAR_SOURCE_DIR}/gui/geometry.c ${AGAR_SOURCE_DIR}/gui/global_keys.c ${AGAR_SOURCE_DIR}/gui/glview.c ${AGAR_SOURCE_DIR}/gui/graph.c ${AGAR_SOURCE_DIR}/gui/gui.c ${AGAR_SOURCE_DIR}/gui/hsvpal.c ${AGAR_SOURCE_DIR}/gui/icon.c ${AGAR_SOURCE_DIR}/gui/iconmgr.c ${AGAR_SOURCE_DIR}/gui/input_device.c ${AGAR_SOURCE_DIR}/gui/joystick.c ${AGAR_SOURCE_DIR}/gui/keyboard.c ${AGAR_SOURCE_DIR}/gui/keymap.c ${AGAR_SOURCE_DIR}/gui/keymap_compose.c ${AGAR_SOURCE_DIR}/gui/keymap_latin1.c ${AGAR_SOURCE_DIR}/gui/keysyms.c ${AGAR_SOURCE_DIR}/gui/label.c ${AGAR_SOURCE_DIR}/gui/load_bmp.c ${AGAR_SOURCE_DIR}/gui/load_color.c ${AGAR_SOURCE_DIR}/gui/load_jpg.c ${AGAR_SOURCE_DIR}/gui/load_png.c ${AGAR_SOURCE_DIR}/gui/load_surface.c ${AGAR_SOURCE_DIR}/gui/menu.c ${AGAR_SOURCE_DIR}/gui/menu_view.c ${AGAR_SOURCE_DIR}/gui/mfspinbutton.c ${AGAR_SOURCE_DIR}/gui/mouse.c ${AGAR_SOURCE_DIR}/gui/mpane.c ${AGAR_SOURCE_DIR}/gui/mspinbutton.c ${AGAR_SOURCE_DIR}/gui/notebook.c ${AGAR_SOURCE_DIR}/gui/numerical.c ${AGAR_SOURCE_DIR}/gui/objsel.c ${AGAR_SOURCE_DIR}/gui/packedpixel.c ${AGAR_SOURCE_DIR}/gui/pane.c ${AGAR_SOURCE_DIR}/gui/pixmap.c ${AGAR_SOURCE_DIR}/gui/primitive.c ${AGAR_SOURCE_DIR}/gui/progress_bar.c ${AGAR_SOURCE_DIR}/gui/radio.c ${AGAR_SOURCE_DIR}/gui/scrollbar.c ${AGAR_SOURCE_DIR}/gui/scrollview.c ${AGAR_SOURCE_DIR}/gui/separator.c ${AGAR_SOURCE_DIR}/gui/slider.c ${AGAR_SOURCE_DIR}/gui/socket.c ${AGAR_SOURCE_DIR}/gui/statusbar.c ${AGAR_SOURCE_DIR}/gui/style_editor.c ${AGAR_SOURCE_DIR}/gui/stylesheet.c ${AGAR_SOURCE_DIR}/gui/surface.c ${AGAR_SOURCE_DIR}/gui/table.c ${AGAR_SOURCE_DIR}/gui/text.c ${AGAR_SOURCE_DIR}/gui/text_cache.c ${AGAR_SOURCE_DIR}/gui/textbox.c ${AGAR_SOURCE_DIR}/gui/time_sdl.c ${AGAR_SOURCE_DIR}/gui/titlebar.c ${AGAR_SOURCE_DIR}/gui/tlist.c ${AGAR_SOURCE_DIR}/gui/toolbar.c ${AGAR_SOURCE_DIR}/gui/treetbl.c ${AGAR_SOURCE_DIR}/gui/ucombo.c ${AGAR_SOURCE_DIR}/gui/units.c ${AGAR_SOURCE_DIR}/gui/widget.c ${AGAR_SOURCE_DIR}/gui/window.c) # # Agar-AU Sources. # set(SOURCE_FILES_AU ${AGAR_SOURCE_DIR}/au/au.c ${AGAR_SOURCE_DIR}/au/au_wave.c ${AGAR_SOURCE_DIR}/au/au_dev_out.c) # # Agar-Map Sources. # set(SOURCE_FILES_MAP ${AGAR_SOURCE_DIR}/map/fill.c ${AGAR_SOURCE_DIR}/map/flip.c ${AGAR_SOURCE_DIR}/map/invert.c ${AGAR_SOURCE_DIR}/map/map.c ${AGAR_SOURCE_DIR}/map/mapview.c ${AGAR_SOURCE_DIR}/map/nodesel.c ${AGAR_SOURCE_DIR}/map/tool.c ${AGAR_SOURCE_DIR}/map/insert.c ${AGAR_SOURCE_DIR}/map/insert_obj.c ${AGAR_SOURCE_DIR}/map/eraser.c ${AGAR_SOURCE_DIR}/map/rg_tileset.c ${AGAR_SOURCE_DIR}/map/rg_tileview.c ${AGAR_SOURCE_DIR}/map/rg_tile.c ${AGAR_SOURCE_DIR}/map/rg_feature.c ${AGAR_SOURCE_DIR}/map/rg_fill.c ${AGAR_SOURCE_DIR}/map/rg_pixmap.c ${AGAR_SOURCE_DIR}/map/rg_prim.c ${AGAR_SOURCE_DIR}/map/rg_texture.c ${AGAR_SOURCE_DIR}/map/rg_transform.c ${AGAR_SOURCE_DIR}/map/map_object.c ${AGAR_SOURCE_DIR}/map/map_tile.c ${AGAR_SOURCE_DIR}/map/map_img.c ${AGAR_SOURCE_DIR}/map/map_link.c) # # Agar-Math Sources. # set(SOURCE_FILES_MATH ${AGAR_SOURCE_DIR}/math/m_math.c ${AGAR_SOURCE_DIR}/math/m_complex.c ${AGAR_SOURCE_DIR}/math/m_quaternion.c ${AGAR_SOURCE_DIR}/math/m_vector.c ${AGAR_SOURCE_DIR}/math/m_vectorz.c ${AGAR_SOURCE_DIR}/math/m_vector_fpu.c ${AGAR_SOURCE_DIR}/math/m_vector2_fpu.c ${AGAR_SOURCE_DIR}/math/m_vector3_fpu.c ${AGAR_SOURCE_DIR}/math/m_vector4_fpu.c ${AGAR_SOURCE_DIR}/math/m_vector3_sse.c ${AGAR_SOURCE_DIR}/math/m_matrix.c ${AGAR_SOURCE_DIR}/math/m_matrix_fpu.c ${AGAR_SOURCE_DIR}/math/m_matrix44_fpu.c ${AGAR_SOURCE_DIR}/math/m_matrix44_sse.c ${AGAR_SOURCE_DIR}/math/m_gui.c ${AGAR_SOURCE_DIR}/math/m_plotter.c ${AGAR_SOURCE_DIR}/math/m_matview.c ${AGAR_SOURCE_DIR}/math/m_line.c ${AGAR_SOURCE_DIR}/math/m_circle.c ${AGAR_SOURCE_DIR}/math/m_triangle.c ${AGAR_SOURCE_DIR}/math/m_rectangle.c ${AGAR_SOURCE_DIR}/math/m_polygon.c ${AGAR_SOURCE_DIR}/math/m_plane.c ${AGAR_SOURCE_DIR}/math/m_coordinates.c ${AGAR_SOURCE_DIR}/math/m_heapsort.c ${AGAR_SOURCE_DIR}/math/m_mergesort.c ${AGAR_SOURCE_DIR}/math/m_qsort.c ${AGAR_SOURCE_DIR}/math/m_radixsort.c ${AGAR_SOURCE_DIR}/math/m_point_set.c ${AGAR_SOURCE_DIR}/math/m_color.c ${AGAR_SOURCE_DIR}/math/m_sphere.c ${AGAR_SOURCE_DIR}/math/m_polyhedron.c ${AGAR_SOURCE_DIR}/math/m_matrix_sparse.c ${AGAR_SOURCE_DIR}/math/m_sparse_allocate.c ${AGAR_SOURCE_DIR}/math/m_sparse_build.c ${AGAR_SOURCE_DIR}/math/m_sparse_eda.c ${AGAR_SOURCE_DIR}/math/m_sparse_factor.c ${AGAR_SOURCE_DIR}/math/m_sparse_output.c ${AGAR_SOURCE_DIR}/math/m_sparse_solve.c ${AGAR_SOURCE_DIR}/math/m_sparse_utils.c ${AGAR_SOURCE_DIR}/math/m_bezier.c ${AGAR_SOURCE_DIR}/math/m_bezier_primitives.c) # # Agar-Net Sources. # set(SOURCE_FILES_NET ${AGAR_SOURCE_DIR}/net/net.c ${AGAR_SOURCE_DIR}/net/net_dummy.c) # # Agar-SG Sources. # set(SOURCE_FILES_SG ${AGAR_SOURCE_DIR}/sg/sg.c ${AGAR_SOURCE_DIR}/sg/sg_node.c ${AGAR_SOURCE_DIR}/sg/sg_view.c ${AGAR_SOURCE_DIR}/sg/sg_camera.c ${AGAR_SOURCE_DIR}/sg/sg_gui.c ${AGAR_SOURCE_DIR}/sg/sg_edit.c ${AGAR_SOURCE_DIR}/sg/sg_dummy.c ${AGAR_SOURCE_DIR}/sg/sg_point.c ${AGAR_SOURCE_DIR}/sg/sg_light.c ${AGAR_SOURCE_DIR}/sg/sg_plane.c ${AGAR_SOURCE_DIR}/sg/sg_object.c ${AGAR_SOURCE_DIR}/sg/sg_texture.c ${AGAR_SOURCE_DIR}/sg/sg_voxel.c ${AGAR_SOURCE_DIR}/sg/sg_program.c ${AGAR_SOURCE_DIR}/sg/sg_load_ply.c ${AGAR_SOURCE_DIR}/sg/sg_image.c ${AGAR_SOURCE_DIR}/sg/sg_script.c ${AGAR_SOURCE_DIR}/sg/sg_line.c ${AGAR_SOURCE_DIR}/sg/sg_geom.c ${AGAR_SOURCE_DIR}/sg/sg_circle.c ${AGAR_SOURCE_DIR}/sg/sg_polygon.c ${AGAR_SOURCE_DIR}/sg/sg_triangle.c ${AGAR_SOURCE_DIR}/sg/sg_rectangle.c ${AGAR_SOURCE_DIR}/sg/sg_sphere.c ${AGAR_SOURCE_DIR}/sg/sg_polyball.c ${AGAR_SOURCE_DIR}/sg/sg_polybox.c ${AGAR_SOURCE_DIR}/sg/sg_action.c ${AGAR_SOURCE_DIR}/sg/sg_widget.c) # # Agar-SK Sources. # set(SOURCE_FILES_SK ${AGAR_SOURCE_DIR}/sk/sk.c ${AGAR_SOURCE_DIR}/sk/sk_view.c ${AGAR_SOURCE_DIR}/sk/sk_tool.c ${AGAR_SOURCE_DIR}/sk/sk_edit.c ${AGAR_SOURCE_DIR}/sk/sk_select.c ${AGAR_SOURCE_DIR}/sk/sk_solve.c ${AGAR_SOURCE_DIR}/sk/sk_group.c ${AGAR_SOURCE_DIR}/sk/sk_intersect.c ${AGAR_SOURCE_DIR}/sk/sk_dummy.c ${AGAR_SOURCE_DIR}/sk/sk_point.c ${AGAR_SOURCE_DIR}/sk/sk_line.c ${AGAR_SOURCE_DIR}/sk/sk_circle.c ${AGAR_SOURCE_DIR}/sk/sk_arc.c ${AGAR_SOURCE_DIR}/sk/sk_placement.c ${AGAR_SOURCE_DIR}/sk/sk_annot.c ${AGAR_SOURCE_DIR}/sk/sk_dimension.c ${AGAR_SOURCE_DIR}/sk/sk_measure.c ${AGAR_SOURCE_DIR}/sk/sk_geometry.c ${AGAR_SOURCE_DIR}/sk/sk_pixmap.c ${AGAR_SOURCE_DIR}/sk/sk_polygon.c ${AGAR_SOURCE_DIR}/sk/sk_gui.c) # # Agar-VG Sources. # set(SOURCE_FILES_VG ${AGAR_SOURCE_DIR}/vg/vg.c ${AGAR_SOURCE_DIR}/vg/vg_circle.c ${AGAR_SOURCE_DIR}/vg/vg_arc.c ${AGAR_SOURCE_DIR}/vg/vg_line.c ${AGAR_SOURCE_DIR}/vg/vg_point.c ${AGAR_SOURCE_DIR}/vg/vg_snap.c ${AGAR_SOURCE_DIR}/vg/vg_tables.c ${AGAR_SOURCE_DIR}/vg/vg_text.c ${AGAR_SOURCE_DIR}/vg/vg_polygon.c ${AGAR_SOURCE_DIR}/vg/vg_view.c ${AGAR_SOURCE_DIR}/vg/vg_tool.c ${AGAR_SOURCE_DIR}/vg/vg_circle_tool.c ${AGAR_SOURCE_DIR}/vg/vg_line_tool.c ${AGAR_SOURCE_DIR}/vg/vg_point_tool.c ${AGAR_SOURCE_DIR}/vg/vg_proximity_tool.c ${AGAR_SOURCE_DIR}/vg/vg_text_tool.c ${AGAR_SOURCE_DIR}/vg/vg_arc_tool.c ${AGAR_SOURCE_DIR}/vg/vg_polygon_tool.c ${AGAR_SOURCE_DIR}/vg/vg_select_tool.c) # # Specify the installation directories. # set(AGAR_PREFIX ${CMAKE_INSTALL_PREFIX}) set(AGAR_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") set(AGAR_DATADIR "${AGAR_PREFIX}/share/agar") set(AGAR_LOCALEDIR "${AGAR_DATADIR}/locale") set(AGAR_TTFDIR "${AGAR_DATADIR}/fonts") set(AGAR_INCLDIR "${AGAR_PREFIX}/include/agar") BB_Save_Define_Value(PREFIX ${AGAR_PREFIX}) BB_Save_Define_Value(DATADIR ${AGAR_DATADIR}) BB_Save_Define_Value(LOCALEDIR ${AGAR_LOCALEDIR}) BB_Save_Define_Value(TTFDIR ${AGAR_TTFDIR}) BB_Save_Define_Value(INCLDIR ${AGAR_INCLDIR}) # Check for a C compiler (and extended compiler attributes). Check_Cc() if(AGAR_ATTRIBUTES) Check_Cc_Attributes() BB_Save_Define(AG_USE_ATTRIBUTES) else() Disable_Cc_Attributes() BB_Save_Undef(AG_USE_ATTRIBUTES) endif() # Check for the host byte order. Check_ByteOrder() # Enable or disable inlining of specific families of Agar functions. if(AGAR_INLINE_FUNCTIONS) foreach(flag_var AG_INLINE_BYTESWAP AG_INLINE_ERROR AG_INLINE_IO AG_INLINE_OBJECT AG_INLINE_STRING AG_INLINE_TBL AG_INLINE_THREADS AG_INLINE_VARIABLE AG_INLINE_SURFACE AG_INLINE_WIDGET) BB_Save_Define(${flag_var}) endforeach() else() foreach(flag_var AG_INLINE_BYTESWAP AG_INLINE_ERROR AG_INLINE_IO AG_INLINE_OBJECT AG_INLINE_STRING AG_INLINE_TBL AG_INLINE_THREADS AG_INLINE_VARIABLE AG_INLINE_SURFACE AG_INLINE_WIDGET) BB_Save_Undef(${flag_var}) endforeach() endif() # Check for system headers, calls and APIs that we can use. Check_Sys_Types_h() Check_Sys_Stat_h() Check_Stdlib_h() Check_Unistd_h() Check_Limits_h() Check_Float_h() Check_Math() Check_Math_C99() Check_Fdclose() Check_Getpwuid() Check_Getpwnam_r() Check_Getenv() Check_Getuid() Check_Strsep() Check_Asprintf() Check_Snprintf() Check_Vsnprintf() Check_Vasprintf() Check_Signal() Check_Strtoll() Check_Strtold() Check_Dlopen() Check_Dyld() Check_Shl_load() Check_Gettimeofday() Check_Select() Check_Glob() Check_Getopt() Check_Execvp() Check_Clock_gettime() Check_Clock_win32() Check_Nanosleep() Check_Kqueue() Check_Timerfd() Check_Csidl() Check_Xbox() Check_Mprotect() Check_Dirfd() # Disable floating-point support if an integer-only build is requested. if(NOT AGAR_FLOAT) BB_Save_Undef(HAVE_FLOAT) BB_Save_Undef(HAVE_LONG_DOUBLE) endif() ## ## Agar-Core Library. ## # Check for Berkeley DB (for AG_Db "hash" and "btree" support). if(AGAR_DB_BDB) Check_Db4() if(HAVE_DB4) list(APPEND AGAR_CORE_CFLAGS ${DB4_CFLAGS}) list(APPEND AGAR_CORE_LIBS ${DB4_LIBS}) endif() else() Disable_Db4() endif() # Check for MySQL (for AG_Db "mysql" support). if(AGAR_DB_MYSQL) Check_Mysql() if(HAVE_MYSQL) list(APPEND AGAR_CORE_CFLAGS ${MYSQL_CFLAGS}) list(APPEND AGAR_CORE_LIBS ${MYSQL_LIBS}) endif() else() Disable_Mysql() endif() # Check for threads support. if(AGAR_THREADS) Check_Pthreads() if(HAVE_PTHREADS) BB_Save_Define(AG_THREADS) list(APPEND AGAR_CORE_CFLAGS ${PTHREADS_CFLAGS}) list(APPEND AGAR_CORE_LIBS ${PTHREADS_LIBS}) else() BB_Save_Undef(AG_THREADS) if (AGAR_WARNINGS) # # Lock macros expand to no-ops and cause unused variables # to appear in unthreaded builds. # list(APPEND AGAR_GLOBAL_CFLAGS "-Wno-unused") endif() endif() else() Disable_Pthreads() BB_Save_Undef(AG_THREADS) endif() # Check for libiconv. Check_Iconv() if(HAVE_ICONV) if(ICONV_CFLAGS) list(APPEND AGAR_CORE_CFLAGS ${ICONV_CFLAGS}) endif() if(ICONV_LIBS) list(APPEND AGAR_CORE_LIBS ${ICONV_LIBS}) endif() endif() # Check for libintl / gettext. if(AGAR_NLS) Check_Gettext() if(HAVE_GETTEXT) BB_Save_Define(ENABLE_NLS) if(GETTEXT_CFLAGS) list(APPEND AGAR_CORE_CFLAGS ${GETTEXT_CFLAGS}) endif() if(GETTEXT_LIBS) list(APPEND AGAR_CORE_LIBS ${GETTEXT_LIBS}) endif() else() BB_Save_Undef(ENABLE_NLS) endif() else() Disable_Gettext() BB_Save_Undef(ENABLE_NLS) endif() ## ## Agar-GUI Library. ## if(AGAR_GUI) BB_Save_Define(ENABLE_GUI) # Check for SDL 2.0. if(AGAR_GUI_SDL2) Check_Sdl2() if(SDL2_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${SDL2_CFLAGS}) endif() if(SDL2_LIBS) list(APPEND AGAR_GUI_LIBS ${SDL2_LIBS}) endif() else() Disable_Sdl2() endif() # Fallback to SDL 1.2 (which conflicts with SDL2). if(AGAR_GUI_SDL AND NOT HAVE_SDL2) Check_Sdl() if(SDL_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${SDL_CFLAGS}) endif() if(SDL_LIBS) list(APPEND AGAR_GUI_LIBS ${SDL_LIBS}) endif() else() Disable_Sdl() endif() # Check for the FreeType font engine. if(AGAR_GUI_FREETYPE) Check_FreeType() if(FREETYPE_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${FREETYPE_CFLAGS}) endif() if(FREETYPE_LIBS) list(APPEND AGAR_GUI_LIBS ${FREETYPE_LIBS}) endif() else() Disable_FreeType() endif() # Check for the Fontconfig library. if(AGAR_GUI_FONTCONFIG) Check_Fontconfig() if(FONTCONFIG_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${FONTCONFIG_CFLAGS}) endif() if(FONTCONFIG_LIBS) list(APPEND AGAR_GUI_LIBS ${FONTCONFIG_LIBS}) endif() else() Disable_Fontconfig() endif() # Check for OpenGL (and extensions such as GLX and WGL). if(AGAR_GUI_OPENGL) Check_OpenGL() if(OPENGL_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${OPENGL_CFLAGS}) endif() if(OPENGL_LIBS) list(APPEND AGAR_GUI_LIBS ${OPENGL_LIBS}) endif() else() Disable_OpenGL() endif() # Check for X Windows and the Xinerama extension. if(AGAR_GUI_X11) Check_X11() if(X11_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${X11_CFLAGS}) endif() if(X11_LIBS) list(APPEND AGAR_GUI_LIBS ${X11_LIBS}) endif() if(XINERAMA_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${XINERAMA_CFLAGS}) endif() if(XINERAMA_LIBS) list(APPEND AGAR_GUI_LIBS ${XINERAMA_LIBS}) endif() else() Disable_X11() set(HAVE_GLX OFF) BB_Save_Undef(HAVE_GLX) endif() # Check for Cocoa on MacOS X. if(AGAR_GUI_COCOA) Check_Cocoa() if(COCOA_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${COCOA_CFLAGS}) endif() if(COCOA_LIBS) list(APPEND AGAR_GUI_LIBS ${COCOA_LIBS}) endif() else() Disable_Cocoa() endif() # Check for libjpeg. if(AGAR_GUI_JPEG) Check_Jpeg() if(JPEG_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${JPEG_CFLAGS}) endif() if(JPEG_LIBS) list(APPEND AGAR_GUI_LIBS ${JPEG_LIBS}) endif() else() Disable_Jpeg() endif() # Check for libpng. if(AGAR_GUI_PNG) Check_Png() if(PNG_CFLAGS) list(APPEND AGAR_GUI_CFLAGS ${PNG_CFLAGS}) endif() if(PNG_LIBS) list(APPEND AGAR_GUI_LIBS ${PNG_LIBS}) endif() else() Disable_Png() endif() # Use the math library. list(APPEND AGAR_GUI_CFLAGS ${MATH_CFLAGS}) list(APPEND AGAR_GUI_LIBS ${MATH_LIBS}) else() BB_Save_Undef(ENABLE_GUI) Disable_Sdl2() Disable_Sdl() Disable_FreeType() Disable_Fontconfig() Disable_OpenGL() Disable_X11() Disable_Cocoa() Disable_Jpeg() Disable_Png() endif() ## ## Agar-AU Library. ## if(AGAR_AU) BB_Save_Define(ENABLE_AU) Check_Sndfile() if(HAVE_SNDFILE) list(APPEND AGAR_AU_CFLAGS ${SNDFILE_CFLAGS}) list(APPEND AGAR_AU_LIBS ${SNDFILE_LIBS}) endif() Check_Portaudio() if(HAVE_PORTAUDIO) list(APPEND AGAR_AU_CFLAGS ${PORTAUDIO_CFLAGS}) list(APPEND AGAR_AU_LIBS ${PORTAUDIO_LIBS}) endif() else() BB_Save_Undef(ENABLE_AU) Disable_Sndfile() Disable_Portaudio() endif() ## ## Agar-Map Library. ## if(AGAR_MAP) BB_Save_Define(ENABLE_MAP) else() BB_Save_Undef(ENABLE_MAP) endif() ## ## Agar-Math Library. ## if(AGAR_MATH) BB_Save_Define(ENABLE_MATH) list(APPEND AGAR_MATH_CFLAGS ${MATH_CFLAGS}) list(APPEND AGAR_MATH_LIBS ${MATH_LIBS}) if(HAVE_CC_ASM) # SSE Extensions. Check_SSE() if(HAVE_SSE) list(APPEND AGAR_MATH_CFLAGS "-msse") endif() if(HAVE_SSE2) list(APPEND AGAR_MATH_CFLAGS "-msse2") endif() if(HAVE_SSE3) list(APPEND AGAR_MATH_CFLAGS "-msse3") endif() if(AGAR_MATH_SSE) BB_Save_Define(INLINE_SSE) else() BB_Save_Undef(INLINE_SSE) endif() # Altivec Extensions. Check_Altivec() if(HAVE_ALTIVEC) list(APPEND AGAR_MATH_CFLAGS "-maltivec") endif() if(AGAR_MATH_ALTIVEC) BB_Save_Define(INLINE_ALTIVEC) else() BB_Save_Undef(INLINE_ALTIVEC) endif() # Select the natural precision of the Agar-Math M_Real type. if(AGAR_MATH_PRECISION STREQUAL "SINGLE" AND NOT HAVE_MATH_C99) message(WARNING "Forcing AGAR_MATH_PRECISION to DOUBLE due to missing C99 math extensions.") set(AGAR_MATH_PRECISION "DOUBLE") elseif(AGAR_MATH_PRECISION STREQUAL "QUAD") if(NOT HAVE_LONG_DOUBLE) message(WARNING "Forcing AGAR_MATH_PRECISION to DOUBLE due to missing long double type.") set(AGAR_MATH_PRECISION "DOUBLE") endif() if(NOT HAVE_MATH_C99) message(WARNING "Forcing AGAR_MATH_PRECISION to DOUBLE due to missing C99 math extensions.") set(AGAR_MATH_PRECISION "DOUBLE") endif() endif() if(AGAR_MATH_PRECISION STREQUAL "SINGLE") BB_Save_Define(SINGLE_PRECISION) BB_Save_Undef(DOUBLE_PRECISION) BB_Save_Undef(QUAD_PRECISION) elseif(AGAR_MATH_PRECISION STREQUAL "QUAD") BB_Save_Undef(SINGLE_PRECISION) BB_Save_Undef(DOUBLE_PRECISION) BB_Save_Define(QUAD_PRECISION) else() BB_Save_Undef(SINGLE_PRECISION) BB_Save_Define(DOUBLE_PRECISION) BB_Save_Undef(QUAD_PRECISION) endif() else() Disable_SSE() Disable_Altivec() BB_Save_Undef(INLINE_SSE) BB_Save_Undef(INLINE_ALTIVEC) BB_Save_Undef(SINGLE_PRECISION) BB_Save_Undef(DOUBLE_PRECISION) BB_Save_Undef(QUAD_PRECISION) endif() else() BB_Save_Undef(ENABLE_MATH) BB_Save_Undef(INLINE_SSE) BB_Save_Undef(INLINE_ALTIVEC) endif() ## ## Agar-Net Library. ## if(AGAR_NET) BB_Save_MakeVar(HAVE_NETWORK, "yes") BB_Save_Define(AG_NETWORK) Check_Getaddrinfo() Check_Siocgifconf() Check_Setsockopts() Check_Winsock() if(AGAR_NET_WEB) Check_Zlib() if(HAVE_ZLIB) list(APPEND AGAR_NET_CFLAGS ${ZLIB_CFLAGS}) list(APPEND AGAR_NET_LIBS ${ZLIB_LIBS}) endif() CHECK_INCLUDE_FILE(sys/uio.h AGAR_NET_HAVE_SYS_UIO_H) if (AGAR_NET_HAVE_SYS_UIO_H) BB_Save_Define(HAVE_SYS_UIO_H) else() BB_Save_Undef(HAVE_SYS_UIO_H) endif() CHECK_INCLUDE_FILE(sys/param.h AGAR_NET_HAVE_SYS_PARAM_H) if (AGAR_NET_HAVE_SYS_PARAM_H) BB_Save_Define(HAVE_SYS_PARAM_H) else() BB_Save_Undef(HAVE_SYS_PARAM_H) endif() BB_Save_MakeVar(HAVE_WEB "yes") BB_Save_Define(AG_WEB) else() Disable_Zlib() BB_Save_MakeVar(HAVE_WEB "no") BB_Save_Undef(AG_WEB) endif() else() BB_Save_MakeVar(HAVE_NETWORK, "no") BB_Save_Undef(AG_NETWORK) Disable_Setsockopts() Disable_Winsock() # Disable_Zlib() BB_Save_Undef(HAVE_SYS_UIO_H) BB_Save_Undef(HAVE_SYS_PARAM_H) BB_Save_MakeVar(HAVE_WEB "no") BB_Save_Undef(AG_WEB) endif() ## ## Agar-SG Library. ## if(AGAR_SG) BB_Save_Define(ENABLE_SG) else() BB_Save_Undef(ENABLE_SG) endif() ## ## Agar-SK Library. ## if(AGAR_SK) BB_Save_Define(ENABLE_SK) else() BB_Save_Undef(ENABLE_SK) endif() ## ## Agar-VG Library. ## if(AGAR_VG) BB_Save_Define(ENABLE_VG) else() BB_Save_Undef(ENABLE_VG) endif() # # Agar-Core conditionally compiled sources. # if(NOT HAVE_SNPRINTF) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/snprintf.c) endif() if(HAVE_CLOCK_WIN32) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/time_win32.c) endif() if(HAVE_CLOCK_GETTIME) if(HAVE_NANOSLEEP) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/time_posix.c) endif() if(HAVE_PTHREADS) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/time_renderer.c) endif() endif() if(HAVE_GETTIMEOFDAY AND HAVE_SELECT) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/time_gettimeofday.c) endif() if(HAVE_DB4) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/db_bdb.c) endif() if(HAVE_MYSQL) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/db_mysql.c) endif() if(HAVE_GETPWUID) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/user_posix.c) endif() if(HAVE_XBOX) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/user_xbox.c) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/xbox.c) endif() if(HAVE_CSIDL) set(SOURCE_FILES_CORE ${SOURCE_FILES_CORE} ${AGAR_SOURCE_DIR}/core/user_win32.c) endif() # # Agar-GUI conditionally compiled sources. # if(AGAR_GUI) if(HAVE_FREETYPE) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/font_ft.c) endif() if(HAVE_SDL) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdl_common.c) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdlfb.c) if(HAVE_OPENGL) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdlgl.c) endif() endif() if(HAVE_SDL2) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdl2_common.c) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdl_keysyms.c) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdl2fb.c) if(HAVE_OPENGL) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdl2gl.c) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_sdl2mw.c) endif() endif() if(HAVE_COCOA) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_cocoa.m) endif() if(HAVE_OPENGL) if(HAVE_GLX) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_glx.c) endif() if(HAVE_WGL) set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_wgl.c) endif() set(SOURCE_FILES_GUI ${SOURCE_FILES_GUI} ${AGAR_SOURCE_DIR}/gui/drv_gl_common.c) endif() endif() # # Agar-AU conditionally compiled sources. # if(AGAR_AU) if(HAVE_SNDFILE) set(SOURCE_FILES_AU ${SOURCE_FILES_AU} ${AGAR_SOURCE_DIR}/au/au_dev_file.c) endif() if(HAVE_PORTAUDIO) set(SOURCE_FILES_AU ${SOURCE_FILES_AU} ${AGAR_SOURCE_DIR}/au/au_dev_pa.c) endif() endif() # # Agar-Net conditionally compiled sources. # if(AGAR_NET) if(HAVE_WINSOCK1) set(SOURCE_FILES_NET ${SOURCE_FILES_NET} ${AGAR_SOURCE_DIR}/net/net_winsock1.c) endif() if(HAVE_WINSOCK2) set(SOURCE_FILES_NET ${SOURCE_FILES_NET} ${AGAR_SOURCE_DIR}/net/net_winsock2.c) endif() if(HAVE_GETADDRINFO) set(SOURCE_FILES_NET ${SOURCE_FILES_NET} ${AGAR_SOURCE_DIR}/net/net_bsd.c) endif() if(AGAR_NET_WEB) set(SOURCE_FILES_NET ${SOURCE_FILES_NET} ${AGAR_SOURCE_DIR}/net/web.c ${AGAR_SOURCE_DIR}/net/web_auth.c ${AGAR_SOURCE_DIR}/net/web_var.c) endif() endif() # # Finalize CFLAGS and LIBS. # list(REMOVE_DUPLICATES AGAR_CORE_CFLAGS) list(REMOVE_DUPLICATES AGAR_CORE_LIBS) list(REMOVE_DUPLICATES AGAR_GUI_CFLAGS) list(REMOVE_DUPLICATES AGAR_GUI_LIBS) list(REMOVE_DUPLICATES AGAR_AU_CFLAGS) list(REMOVE_DUPLICATES AGAR_AU_LIBS) list(REMOVE_DUPLICATES AGAR_MAP_CFLAGS) list(REMOVE_DUPLICATES AGAR_MAP_LIBS) list(REMOVE_DUPLICATES AGAR_MATH_CFLAGS) list(REMOVE_DUPLICATES AGAR_MATH_LIBS) list(REMOVE_DUPLICATES AGAR_NET_CFLAGS) list(REMOVE_DUPLICATES AGAR_NET_LIBS) list(REMOVE_DUPLICATES AGAR_SG_CFLAGS) list(REMOVE_DUPLICATES AGAR_SG_LIBS) list(REMOVE_DUPLICATES AGAR_SK_CFLAGS) list(REMOVE_DUPLICATES AGAR_SK_LIBS) list(REMOVE_DUPLICATES AGAR_VG_CFLAGS) list(REMOVE_DUPLICATES AGAR_VG_LIBS) message(STATUS "") message(STATUS "Agar build configured successfully!") message(STATUS "") message(STATUS "Platform: ${CMAKE_SYSTEM}") message(STATUS "64-bit: ${ARCH_64}") message(STATUS "Compiler: ${CMAKE_C_COMPILER}") message(STATUS "Agar Version: ${AGAR_VERSION} (Library Version: ${AGAR_LIBRARY_VERSION})") message(STATUS "Memory Model: ${AGAR_MEMORY_MODEL}") set(AGAR_LIBS_ENABLED " CORE") set(AGAR_LIBS_DISABLED "") if(AGAR_AU) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} AU") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} AU") endif() if(AGAR_GUI) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} GUI") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} GUI") endif() if(AGAR_MAP) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} MAP") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} MAP") endif() if(AGAR_MATH) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} MATH") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} MATH") endif() if(AGAR_NET) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} NET") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} NET") endif() if(AGAR_SG) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} SG") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} SG") endif() if(AGAR_SK) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} SK") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} SK") endif() if(AGAR_VG) set(AGAR_LIBS_ENABLED "${AGAR_LIBS_ENABLED} VG") else() set(AGAR_LIBS_DISABLED "${AGAR_LIBS_DISABLED} VG") endif() message(STATUS "Enable Libs: ${AGAR_LIBS_ENABLED}") message(STATUS "Disable Libs:${AGAR_LIBS_DISABLED}") message(STATUS "Shared Libs: ${AGAR_SHARED}") message(STATUS "Static Libs: ${AGAR_STATIC} (Static PIC: ${AGAR_STATIC_PIC})") if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") message(STATUS "Build Type: DEBUG") message(STATUS "") message(STATUS "CMAKE_C_FLAGS_DEBUG: ${CMAKE_C_FLAGS_DEBUG}") message(STATUS "CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") else() message(STATUS "Build Type: RELEASE") message(STATUS "") endif() message(STATUS "CFLAGS: ${CMAKE_C_FLAGS}") message(STATUS "EXTRA_CFLAGS: ${EXTRA_CFLAGS}") message(STATUS "EXTRA_LDFLAGS: ${EXTRA_LDFLAGS}") message(STATUS "EXTRA_LIBS: ${EXTRA_LIBS}") if(AGAR_GLOBAL_CFLAGS) message(STATUS "AGAR_GLOBAL_CFLAGS: ${AGAR_GLOBAL_CFLAGS}") endif() if(AGAR_CORE_CFLAGS) message(STATUS "AGAR_CORE_CFLAGS: ${AGAR_CORE_CFLAGS}") endif() if(AGAR_CORE_LIBS) message(STATUS "AGAR_CORE_LIBS: ${AGAR_CORE_LIBS}") endif() if(AGAR_GUI_CFLAGS) message(STATUS "AGAR_GUI_CFLAGS: ${AGAR_GUI_CFLAGS}") endif() if(AGAR_GUI_LIBS) message(STATUS "AGAR_GUI_LIBS: ${AGAR_GUI_LIBS}") endif() if(AGAR_AU_CFLAGS) message(STATUS "AGAR_AU_CFLAGS: ${AGAR_AU_CFLAGS}") endif() if(AGAR_AU_LIBS) message(STATUS "AGAR_AU_LIBS: ${AGAR_AU_LIBS}") endif() if(AGAR_MAP_CFLAGS) message(STATUS "AGAR_MAP_CFLAGS: ${AGAR_MAP_CFLAGS}") endif() if(AGAR_MAP_LIBS) message(STATUS "AGAR_MAP_LIBS: ${AGAR_MAP_LIBS}") endif() if(AGAR_MATH_CFLAGS) message(STATUS "AGAR_MATH_CFLAGS: ${AGAR_MATH_CFLAGS}") endif() if(AGAR_MATH_LIBS) message(STATUS "AGAR_MATH_LIBS: ${AGAR_MATH_LIBS}") endif() if(AGAR_NET_CFLAGS) message(STATUS "AGAR_NET_CFLAGS: ${AGAR_NET_CFLAGS}") endif() if(AGAR_NET_LIBS) message(STATUS "AGAR_NET_LIBS: ${AGAR_NET_LIBS}") endif() if(AGAR_SG_CFLAGS) message(STATUS "AGAR_SG_CFLAGS: ${AGAR_SG_CFLAGS}") endif() if(AGAR_SG_LIBS) message(STATUS "AGAR_SG_LIBS: ${AGAR_SG_LIBS}") endif() if(AGAR_SK_CFLAGS) message(STATUS "AGAR_SK_CFLAGS: ${AGAR_SK_CFLAGS}") endif() if(AGAR_SK_LIBS) message(STATUS "AGAR_SK_LIBS: ${AGAR_SK_LIBS}") endif() if(AGAR_VG_CFLAGS) message(STATUS "AGAR_VG_CFLAGS: ${AGAR_VG_CFLAGS}") endif() if(AGAR_VG_LIBS) message(STATUS "AGAR_VG_LIBS: ${AGAR_VG_LIBS}") endif() message(STATUS "") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${AGAR_GLOBAL_CFLAGS} ${EXTRA_CFLAGS}") # Set common platform-specific properties on shared-library targets. macro(Agar_SetPlatformSpecificShared lib outname) set_target_properties(${lib} PROPERTIES VERSION ${AGAR_LIBRARY_VERSION} SOVERSION ${AGAR_LIBRARY_VERSION_MAJOR} OUTPUT_NAME "${outname}") if(APPLE) set_target_properties(${lib} PROPERTIES MACOSX_RPATH 1) endif() if(WINDOWS OR CYGWIN) set_target_properties(${lib} PROPERTIES DEFINE_SYMBOL DLL_EXPORT) endif() if(MSVC AND NOT MSVC_CLANG) if(NOT WINDOWS_STORE) set_target_properties(${lib} PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB") set_target_properties(${lib} PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB") endif() set_target_properties(${lib} PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB") endif() endmacro() # Set common platform-specific properties on static-library targets. macro(Agar_SetPlatformSpecificStatic lib outname) if(NOT AGAR_SHARED OR NOT WIN32 OR MINGW) set_target_properties(${lib} PROPERTIES OUTPUT_NAME "${outname}") endif() set_target_properties(${lib} PROPERTIES POSITION_INDEPENDENT_CODE ${AGAR_STATIC_PIC}) if(MSVC AND NOT MSVC_CLANG) set_target_properties(${lib} PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB") set_target_properties(${lib} PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB") set_target_properties(${lib} PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB") endif() endmacro() # # Shared Libraries # if(AGAR_SHARED) add_library(ag_core SHARED ${SOURCE_FILES_CORE}) add_library(ag_core::ag_core ALIAS ag_core) target_compile_options(ag_core PUBLIC ${AGAR_CORE_CFLAGS}) target_compile_definitions(ag_core PUBLIC _AGAR_CORE_INTERNAL) Agar_SetPlatformSpecificShared(ag_core "ag_core") target_link_libraries(ag_core PUBLIC ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_core BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_core PUBLIC "$;$;$") target_link_libraries(ag_core PRIVATE $) set_target_properties(ag_core PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") if(AGAR_GUI) add_library(ag_gui SHARED ${SOURCE_FILES_GUI}) add_library(ag_gui::ag_gui ALIAS ag_gui) target_compile_options(ag_gui PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS}) target_compile_definitions(ag_gui PUBLIC _AGAR_GUI_INTERNAL) Agar_SetPlatformSpecificShared(ag_gui "ag_gui") target_link_libraries(ag_gui PUBLIC ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_gui BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_gui PUBLIC "$;$;$") target_link_libraries(ag_gui PRIVATE $) set_target_properties(ag_gui PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_AU) add_library(ag_au SHARED ${SOURCE_FILES_AU}) add_library(ag_au::ag_au ALIAS ag_au) target_compile_options(ag_au PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_AU_CFLAGS}) target_compile_definitions(ag_au PUBLIC _AGAR_AU_INTERNAL) Agar_SetPlatformSpecificShared(ag_au "ag_au") target_link_libraries(ag_au PUBLIC ${AGAR_AU_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_au BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_au PUBLIC "$;$;$") target_link_libraries(ag_au PRIVATE $) set_target_properties(ag_au PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_MAP) add_library(ag_map SHARED ${SOURCE_FILES_MAP}) add_library(ag_map::ag_map ALIAS ag_map) target_compile_options(ag_map PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MAP_CFLAGS}) target_compile_definitions(ag_map PUBLIC _AGAR_MAP_INTERNAL _AGAR_RG_INTERNAL) Agar_SetPlatformSpecificShared(ag_map "ag_map") target_link_libraries(ag_map PUBLIC ${AGAR_MAP_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_map BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_map PUBLIC "$;$;$") target_link_libraries(ag_map PRIVATE $) set_target_properties(ag_map PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_MATH) add_library(ag_math SHARED ${SOURCE_FILES_MATH}) add_library(ag_math::ag_math ALIAS ag_math) target_compile_options(ag_math PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS}) if(AGAR_WARNINGS) # XXX gcc warnings in m_matrix44_sse.c target_compile_options(ag_math PUBLIC "-Wno-uninitialized") endif() target_compile_definitions(ag_math PUBLIC _AGAR_MATH_INTERNAL) Agar_SetPlatformSpecificShared(ag_math "ag_math") target_link_libraries(ag_math PUBLIC ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_math BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_math PUBLIC "$;$;$") target_link_libraries(ag_math PRIVATE $) set_target_properties(ag_math PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_NET) add_library(ag_net SHARED ${SOURCE_FILES_NET}) add_library(ag_net::ag_net ALIAS ag_net) target_compile_options(ag_net PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_NET_CFLAGS}) target_compile_definitions(ag_net PUBLIC _AGAR_NET_INTERNAL) Agar_SetPlatformSpecificShared(ag_net "ag_net") target_link_libraries(ag_net PUBLIC ${AGAR_NET_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_net BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_net PUBLIC "$;$;$") target_link_libraries(ag_net PRIVATE $) set_target_properties(ag_net PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_SG) add_library(ag_sg SHARED ${SOURCE_FILES_SG}) add_library(ag_sg::ag_sg ALIAS ag_sg) target_compile_options(ag_sg PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_SG_CFLAGS}) target_compile_definitions(ag_sg PUBLIC _AGAR_SG_INTERNAL) Agar_SetPlatformSpecificShared(ag_sg "ag_sg") target_link_libraries(ag_sg PUBLIC ${AGAR_SG_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_sg BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_sg PUBLIC "$;$;$") target_link_libraries(ag_sg PRIVATE $) set_target_properties(ag_sg PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_SK) add_library(ag_sk SHARED ${SOURCE_FILES_SK}) add_library(ag_sk::ag_sk ALIAS ag_sk) target_compile_options(ag_sk PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_SK_CFLAGS}) target_compile_definitions(ag_sk PUBLIC _AGAR_SK_INTERNAL) Agar_SetPlatformSpecificShared(ag_sk "ag_sk") target_link_libraries(ag_sk PUBLIC ${AGAR_SK_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_sk BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_sk PUBLIC "$;$;$") target_link_libraries(ag_sk PRIVATE $) set_target_properties(ag_sk PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_VG) add_library(ag_vg SHARED ${SOURCE_FILES_VG}) add_library(ag_vg::ag_vg ALIAS ag_vg) target_compile_options(ag_vg PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_VG_CFLAGS}) target_compile_definitions(ag_vg PUBLIC _AGAR_VG_INTERNAL) Agar_SetPlatformSpecificShared(ag_vg "ag_vg") target_link_libraries(ag_vg PUBLIC ${AGAR_VG_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_vg BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_vg PUBLIC "$;$;$") target_link_libraries(ag_vg PRIVATE $) set_target_properties(ag_vg PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() BB_Save_MakeVar(LIB_SHARED "Yes") else() BB_Save_MakeVar(LIB_SHARED "No") endif() # # Static Libraries # if(AGAR_STATIC) set(BUILD_SHARED_LIBS FALSE) add_library(ag_core-static STATIC ${SOURCE_FILES_CORE}) target_compile_options(ag_core-static PUBLIC ${AGAR_CORE_CFLAGS}) target_compile_definitions(ag_core-static PUBLIC _AGAR_CORE_INTERNAL) Agar_SetPlatformSpecificStatic(ag_core-static "ag_core") target_link_libraries(ag_core-static PUBLIC ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_core-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_core-static PUBLIC "$" $ $) target_link_libraries(ag_core-static PRIVATE $) set_target_properties(ag_core-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") if(AGAR_GUI) add_library(ag_gui-static STATIC ${SOURCE_FILES_GUI}) target_compile_options(ag_gui-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS}) target_compile_definitions(ag_gui-static PUBLIC _AGAR_GUI_INTERNAL) Agar_SetPlatformSpecificStatic(ag_gui-static "ag_gui") target_link_libraries(ag_gui-static PUBLIC ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_gui-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_gui-static PUBLIC "$" $ $) target_link_libraries(ag_gui-static PRIVATE $) set_target_properties(ag_gui-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_AU) add_library(ag_au-static STATIC ${SOURCE_FILES_AU}) target_compile_options(ag_au-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_AU_CFLAGS}) target_compile_definitions(ag_au-static PUBLIC _AGAR_AU_INTERNAL) Agar_SetPlatformSpecificStatic(ag_au-static "ag_au") target_link_libraries(ag_au-static PUBLIC ${AGAR_AU_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_au-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_au-static PUBLIC "$" $ $) target_link_libraries(ag_au-static PRIVATE $) set_target_properties(ag_au-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_MAP) add_library(ag_map-static STATIC ${SOURCE_FILES_MAP}) target_compile_options(ag_map-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_MAP_CFLAGS}) target_compile_definitions(ag_map-static PUBLIC _AGAR_MAP_INTERNAL _AGAR_RG_INTERNAL) Agar_SetPlatformSpecificStatic(ag_map-static "ag_map") target_link_libraries(ag_map-static PUBLIC ${AGAR_MAP_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_map-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_map-static PUBLIC "$" $ $) target_link_libraries(ag_map-static PRIVATE $) set_target_properties(ag_map-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_MATH) add_library(ag_math-static STATIC ${SOURCE_FILES_MATH}) target_compile_options(ag_math-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS}) if(AGAR_WARNINGS) # XXX gcc warnings in m_matrix44_sse.c target_compile_options(ag_math-static PUBLIC "-Wno-uninitialized") endif() target_compile_definitions(ag_math-static PUBLIC _AGAR_MATH_INTERNAL) Agar_SetPlatformSpecificStatic(ag_math-static "ag_math") target_link_libraries(ag_math-static PUBLIC ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_math-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_math-static PUBLIC "$" $ $) target_link_libraries(ag_math-static PRIVATE $) set_target_properties(ag_math-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_NET) add_library(ag_net-static STATIC ${SOURCE_FILES_NET}) target_compile_options(ag_net-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_NET_CFLAGS}) target_compile_definitions(ag_net-static PUBLIC _AGAR_NET_INTERNAL) Agar_SetPlatformSpecificStatic(ag_net-static "ag_net") target_link_libraries(ag_net-static PUBLIC ${AGAR_NET_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_net-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_net-static PUBLIC "$" $ $) target_link_libraries(ag_net-static PRIVATE $) set_target_properties(ag_net-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_SG) add_library(ag_sg-static STATIC ${SOURCE_FILES_SG}) target_compile_options(ag_sg-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_SG_CFLAGS}) target_compile_definitions(ag_sg-static PUBLIC _AGAR_SG_INTERNAL) Agar_SetPlatformSpecificStatic(ag_sg-static "ag_sg") target_link_libraries(ag_sg-static PUBLIC ${AGAR_SG_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_sg-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_sg-static PUBLIC "$" $ $) target_link_libraries(ag_sg-static PRIVATE $) set_target_properties(ag_sg-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_SK) add_library(ag_sk-static STATIC ${SOURCE_FILES_SK}) target_compile_options(ag_sk-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_SK_CFLAGS}) target_compile_definitions(ag_sk-static PUBLIC _AGAR_SK_INTERNAL) Agar_SetPlatformSpecificStatic(ag_sk-static "ag_sk") target_link_libraries(ag_sk-static PUBLIC ${AGAR_SK_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_sk-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_sk-static PUBLIC "$" $ $) target_link_libraries(ag_sk-static PRIVATE $) set_target_properties(ag_sk-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() if(AGAR_VG) add_library(ag_vg-static STATIC ${SOURCE_FILES_VG}) target_compile_options(ag_vg-static PUBLIC ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_VG_CFLAGS}) target_compile_definitions(ag_vg-static PUBLIC _AGAR_VG_INTERNAL) Agar_SetPlatformSpecificStatic(ag_vg-static "ag_vg") target_link_libraries(ag_vg-static PUBLIC ${AGAR_VG_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS} ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) target_include_directories(ag_vg-static BEFORE PRIVATE "${AGAR_BINARY_DIR}/include") target_include_directories(ag_vg-static PUBLIC "$" $ $) target_link_libraries(ag_vg-static PRIVATE $) set_target_properties(ag_vg-static PROPERTIES DEBUG_POSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") endif() endif() # # Install: Shared and Static Libraries. # if(AGAR_SHARED) install(TARGETS ag_core EXPORT ag_coreTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") if(AGAR_GUI) install(TARGETS ag_gui EXPORT ag_guiTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_AU) install(TARGETS ag_au EXPORT ag_auTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_MAP) install(TARGETS ag_map EXPORT ag_mapTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_MATH) install(TARGETS ag_math EXPORT ag_mathTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_NET) install(TARGETS ag_net EXPORT ag_netTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_SG) install(TARGETS ag_sg EXPORT ag_sgTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_SK) install(TARGETS ag_sk EXPORT ag_skTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_VG) install(TARGETS ag_vg EXPORT ag_vgTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() endif() if(AGAR_STATIC) install(TARGETS ag_core-static EXPORT ag_coreStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") if(AGAR_GUI) install(TARGETS ag_gui-static EXPORT ag_guiStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_AU) install(TARGETS ag_au-static EXPORT ag_auStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_MAP) install(TARGETS ag_map-static EXPORT ag_mapStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_MATH) install(TARGETS ag_math-static EXPORT ag_mathStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_NET) install(TARGETS ag_net-static EXPORT ag_netStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_SG) install(TARGETS ag_sg-static EXPORT ag_sgStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_SK) install(TARGETS ag_sk-static EXPORT ag_skStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() if(AGAR_VG) install(TARGETS ag_vg-static EXPORT ag_vgStaticTargets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() endif() # # Install: Cmake Package Helpers. # if(WINDOWS AND NOT MINGW) set(PKG_PREFIX "cmake") else() set(PKG_PREFIX "${CMAKE_INSTALL_LIBDIR}/cmake/agar") endif() include(CMakePackageConfigHelpers) write_basic_package_version_file("${AGAR_BINARY_DIR}/agarConfigVersion.cmake" VERSION ${AGAR_VERSION} COMPATIBILITY AnyNewerVersion ) if(AGAR_SHARED) install(EXPORT ag_coreTargets FILE ag_coreTargets.cmake NAMESPACE ag_core:: DESTINATION ${PKG_PREFIX}) if(AGAR_GUI) install(EXPORT ag_guiTargets FILE ag_guiTargets.cmake NAMESPACE ag_gui:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_AU) install(EXPORT ag_auTargets FILE ag_auTargets.cmake NAMESPACE ag_au:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_MAP) install(EXPORT ag_mapTargets FILE ag_mapTargets.cmake NAMESPACE ag_map:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_MATH) install(EXPORT ag_mathTargets FILE ag_mathTargets.cmake NAMESPACE ag_math:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_NET) install(EXPORT ag_netTargets FILE ag_netTargets.cmake NAMESPACE ag_net:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_SG) install(EXPORT ag_sgTargets FILE ag_sgTargets.cmake NAMESPACE ag_sg:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_SK) install(EXPORT ag_skTargets FILE ag_skTargets.cmake NAMESPACE ag_sk:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_VG) install(EXPORT ag_vgTargets FILE ag_vgTargets.cmake NAMESPACE ag_vg:: DESTINATION ${PKG_PREFIX}) endif() endif() if(AGAR_STATIC) install(EXPORT ag_coreStaticTargets FILE ag_coreStaticTargets.cmake NAMESPACE ag_core:: DESTINATION ${PKG_PREFIX}) if(AGAR_GUI) install(EXPORT ag_guiStaticTargets FILE ag_guiStaticTargets.cmake NAMESPACE ag_gui:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_AU) install(EXPORT ag_auStaticTargets FILE ag_auStaticTargets.cmake NAMESPACE ag_au:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_MAP) install(EXPORT ag_mapStaticTargets FILE ag_mapStaticTargets.cmake NAMESPACE ag_map:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_MATH) install(EXPORT ag_mathStaticTargets FILE ag_mathStaticTargets.cmake NAMESPACE ag_math:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_NET) install(EXPORT ag_netStaticTargets FILE ag_netStaticTargets.cmake NAMESPACE ag_net:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_SG) install(EXPORT ag_sgStaticTargets FILE ag_sgStaticTargets.cmake NAMESPACE ag_sg:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_SK) install(EXPORT ag_skStaticTargets FILE ag_skStaticTargets.cmake NAMESPACE ag_sk:: DESTINATION ${PKG_PREFIX}) endif() if(AGAR_VG) install(EXPORT ag_vgStaticTargets FILE ag_vgStaticTargets.cmake NAMESPACE ag_vg:: DESTINATION ${PKG_PREFIX}) endif() endif() install(FILES ${AGAR_SOURCE_DIR}/agarConfig.cmake ${AGAR_BINARY_DIR}/agarConfigVersion.cmake DESTINATION ${PKG_PREFIX} COMPONENT Devel) # # Install: Agar C Include Files. # foreach(agar_incl_subdir au config core gui map math net sg sk vg) file(GLOB include_files ${AGAR_BINARY_DIR}/include/agar/${agar_incl_subdir}/*.h) install(FILES ${include_files} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/agar/${agar_incl_subdir}) endforeach() file(GLOB include_files ${AGAR_BINARY_DIR}/include/agar/*.h) install(FILES ${include_files} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/agar) string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_BUILD_TYPE) if(UPPER_BUILD_TYPE MATCHES DEBUG) set(SOPOSTFIX "${AGAR_CMAKE_DEBUG_POSTFIX}") else() set(SOPOSTFIX "") endif() if(NOT (WINDOWS OR CYGWIN) OR MINGW) # # Install: Symbolic Links for Shared Libraries. # if(AGAR_SHARED AND NOT MINGW) set(SOEXT ${CMAKE_SHARED_LIBRARY_SUFFIX}) get_target_property(SONAME ag_core OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_core${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_core${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") if(AGAR_GUI) get_target_property(SONAME ag_gui OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_gui${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_gui${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(AGAR_AU) get_target_property(SONAME ag_au OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_au${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_au${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(AGAR_MAP) get_target_property(SONAME ag_map OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_map${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_map${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(AGAR_MATH) get_target_property(SONAME ag_math OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_math${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_math${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(AGAR_NET) get_target_property(SONAME ag_net OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_net${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_net${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(AGAR_SG) get_target_property(SONAME ag_sg OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_sg${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_sg${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(AGAR_SK) get_target_property(SONAME ag_sk OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_sk${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_sk${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(AGAR_VG) get_target_property(SONAME ag_vg OUTPUT_NAME) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \"lib${SONAME}${SOPOSTFIX}${SOEXT}.${AGAR_LIBRARY_VERSION}\" \"libag_vg${SOPOSTFIX}${SOEXT}\" WORKING_DIRECTORY \"${AGAR_BINARY_DIR}\")") install(FILES ${AGAR_BINARY_DIR}/libag_vg${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() endif() # # Install: Helper packages for the Unix shell, pkgconfig and GNU autotools. # # if(FREEBSD) # install(FILES ${AGAR_BINARY_DIR}/agar.pc # DESTINATION "libdata/pkgconfig") # else() # install(FILES ${AGAR_BINARY_DIR}/agar.pc # DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") # endif() set(propsRelease IMPORTED_IMPLIB_RELEASE IMPORTED_IMPLIB_NOCONFIG IMPORTED_IMPLIB IMPORTED_IMPLIB_MINSIZEREL IMPORTED_IMPLIB_RELWITHDEBINFO IMPORTED_LOCATION_RELEASE IMPORTED_LOCATION_NOCONFIG IMPORTED_LOCATION IMPORTED_LOCATION_MINSIZEREL IMPORTED_LOCATION_RELWITHDEBINFO) set(propsDebug IMPORTED_IMPLIB_DEBUG IMPORTED_LOCATION_DEBUG) # agar-core-config set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") list(JOIN AGAR_CORE_CFLAGS " " AGAR_CONFIG_CFLAGS) list(JOIN AGAR_CORE_LIBS " " AGAR_CONFIG_DEPLIBS) if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-core-config.in" "${AGAR_BINARY_DIR}/agar-core-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-core-config DESTINATION "${CMAKE_INSTALL_BINDIR}") # agar-config if(AGAR_GUI) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_guid -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_guid.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_gui -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_gui.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-config.in" "${AGAR_BINARY_DIR}/agar-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # agar-au-config if(AGAR_AU) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_AU_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_AU_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_aud -lag_guid -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_aud.a ${AGAR_LIBDIR}/libag_guid.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_au -lag_gui -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_au.a ${AGAR_LIBDIR}/libag_gui.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-au-config.in" "${AGAR_BINARY_DIR}/agar-au-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-au-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # agar-map-config if(AGAR_MAP) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MAP_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_MAP_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_mapd -lag_guid -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_mapd.a ${AGAR_LIBDIR}/libag_guid.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_map -lag_gui -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_map.a ${AGAR_LIBDIR}/libag_gui.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-map-config.in" "${AGAR_BINARY_DIR}/agar-map-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-map-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # agar-math-config if(AGAR_MATH) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_mathd -lag_guid -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_mathd.a ${AGAR_LIBDIR}/libag_guid.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_math -lag_gui -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_math.a ${AGAR_LIBDIR}/libag_gui.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-math-config.in" "${AGAR_BINARY_DIR}/agar-math-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-math-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # agar-net-config if(AGAR_NET) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_NET_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_NET_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_netd -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_netd.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_net -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_net.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-net-config.in" "${AGAR_BINARY_DIR}/agar-net-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-net-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # agar-sg-config if(AGAR_SG) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_SG_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_SG_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_sgd -lag_mathd -lag_guid -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_sgd.a ${AGAR_LIBDIR}/libag_mathd.a ${AGAR_LIBDIR}/libag_guid.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_sg -lag_math -lag_gui -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_sg.a ${AGAR_LIBDIR}/libag_math.a ${AGAR_LIBDIR}/libag_gui.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-sg-config.in" "${AGAR_BINARY_DIR}/agar-sg-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-sg-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # agar-sk-config if(AGAR_SK) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_MATH_CFLAGS} ${AGAR_SK_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_SK_LIBS} ${AGAR_MATH_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_skd -lag_mathd -lag_guid -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_skd.a ${AGAR_LIBDIR}/libag_mathd.a ${AGAR_LIBDIR}/libag_guid.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_sk -lag_math -lag_gui -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_sk.a ${AGAR_LIBDIR}/libag_math.a ${AGAR_LIBDIR}/libag_gui.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-sk-config.in" "${AGAR_BINARY_DIR}/agar-sk-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-sk-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() # agar-vg-config if(AGAR_VG) set(AGAR_CONFIG_CFLAGS "") set(AGAR_CONFIG_LIBS "") set(AGAR_CONFIG_LIBS_STATIC "") set(AGAR_CONFIG_DEPLIBS "") foreach(agarcflag ${AGAR_CORE_CFLAGS} ${AGAR_GUI_CFLAGS} ${AGAR_VG_CFLAGS}) if(AGAR_CONFIG_CFLAGS STREQUAL "") set(AGAR_CONFIG_CFLAGS "${agarcflag}") else() set(AGAR_CONFIG_CFLAGS "${AGAR_CONFIG_CFLAGS} ${agarcflag}") endif() endforeach() foreach(agarlib ${AGAR_VG_LIBS} ${AGAR_GUI_LIBS} ${AGAR_CORE_LIBS}) if(AGAR_CONFIG_DEPLIBS STREQUAL "") set(AGAR_CONFIG_DEPLIBS "${agarlib}") else() set(AGAR_CONFIG_DEPLIBS "${AGAR_CONFIG_DEPLIBS} ${agarlib}") endif() endforeach() if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(AGAR_CONFIG_LIBS "-lag_vgd -lag_guid -lag_cored") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_vgd.a ${AGAR_LIBDIR}/libag_guid.a ${AGAR_LIBDIR}/libag_cored.a") else() set(AGAR_CONFIG_LIBS "-lag_vg -lag_gui -lag_core") set(AGAR_CONFIG_LIBS_STATIC "${AGAR_LIBDIR}/libag_vg.a ${AGAR_LIBDIR}/libag_gui.a ${AGAR_LIBDIR}/libag_core.a") endif() configure_file( "${AGAR_SOURCE_DIR}/mk/cmake-agar-vg-config.in" "${AGAR_BINARY_DIR}/agar-vg-config" IMMEDIATE @ONLY) install(PROGRAMS ${AGAR_BINARY_DIR}/agar-vg-config DESTINATION "${CMAKE_INSTALL_BINDIR}") endif() unset(propsRelease) unset(propsDebug) install(FILES "${AGAR_SOURCE_DIR}/mk/agar.m4" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/aclocal") endif() # # Install: Data Files and Fonts. # if(AGAR_GUI) set(AGAR_DATA_FILES ${AGAR_SOURCE_DIR}/gui/style.css ${AGAR_SOURCE_DIR}/gui/license.txt) set(AGAR_FONT_FILES ${AGAR_SOURCE_DIR}/gui/fonts/OFL11.txt ${AGAR_SOURCE_DIR}/gui/fonts/OFL-FAQ.txt ${AGAR_SOURCE_DIR}/gui/fonts/Charter-LICENSE.txt ${AGAR_SOURCE_DIR}/gui/fonts/Vera-Copyright.txt ${AGAR_SOURCE_DIR}/gui/fonts/League-Gothic-LICENSE.md ${AGAR_SOURCE_DIR}/gui/fonts/League-Spartan-LICENSE.md ${AGAR_SOURCE_DIR}/gui/fonts/Mukta-OFL.txt ${AGAR_SOURCE_DIR}/gui/fonts/agar-minimal.agbf ${AGAR_SOURCE_DIR}/gui/fonts/agar-minimal-12.png ${AGAR_SOURCE_DIR}/gui/fonts/agar-ideograms.agbf ${AGAR_SOURCE_DIR}/gui/fonts/agar-ideograms-12.png ${AGAR_SOURCE_DIR}/gui/fonts/agar-ideograms-14.png ${AGAR_SOURCE_DIR}/gui/fonts/agar-ideograms-16.png ${AGAR_SOURCE_DIR}/gui/fonts/algue.ttf ${AGAR_SOURCE_DIR}/gui/fonts/algue-bold.ttf ${AGAR_SOURCE_DIR}/gui/fonts/algue-italic.ttf ${AGAR_SOURCE_DIR}/gui/fonts/algue-bold-italic.ttf ${AGAR_SOURCE_DIR}/gui/fonts/charter-bold-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/charter-bold.otf ${AGAR_SOURCE_DIR}/gui/fonts/charter-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/charter.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-bold-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-bold.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-condensed-bold-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-condensed-bold.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-condensed-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-condensed-light-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-condensed-light.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-condensed.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-light-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans-light.otf ${AGAR_SOURCE_DIR}/gui/fonts/fira-sans.otf ${AGAR_SOURCE_DIR}/gui/fonts/fraktur-LICENSE.txt ${AGAR_SOURCE_DIR}/gui/fonts/fraktur.ttf ${AGAR_SOURCE_DIR}/gui/fonts/league-gothic.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-gothic-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-gothic-condensed.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-gothic-condensed-italic.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-spartan.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-spartan-black.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-spartan-bold.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-spartan-extrabold.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-spartan-extralight.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-spartan-light.otf ${AGAR_SOURCE_DIR}/gui/fonts/league-spartan-semibold.otf ${AGAR_SOURCE_DIR}/gui/fonts/monoalgue.ttf ${AGAR_SOURCE_DIR}/gui/fonts/monoalgue-bold.ttf ${AGAR_SOURCE_DIR}/gui/fonts/monoalgue-italic.ttf ${AGAR_SOURCE_DIR}/gui/fonts/monoalgue-bold-italic.ttf ${AGAR_SOURCE_DIR}/gui/fonts/unialgue.ttf) install(FILES ${AGAR_FONT_FILES} DESTINATION ${AGAR_TTFDIR}) install(FILES ${AGAR_DATA_FILES} DESTINATION ${AGAR_DATADIR}) endif() # # Install: Manual Pages. # file(GLOB AGAR_CORE_MAN3 ${AGAR_SOURCE_DIR}/core/*.3) install(FILES ${AGAR_CORE_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") if(AGAR_GUI) file(GLOB AGAR_GUI_MAN3 ${AGAR_SOURCE_DIR}/gui/*.3) install(FILES ${AGAR_GUI_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() if(AGAR_AU) file(GLOB AGAR_AU_MAN3 ${AGAR_SOURCE_DIR}/au/*.3) install(FILES ${AGAR_AU_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() if(AGAR_MAP) file(GLOB AGAR_MAP_MAN3 ${AGAR_SOURCE_DIR}/map/*.3) install(FILES ${AGAR_MAP_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() if(AGAR_MATH) file(GLOB AGAR_MATH_MAN3 ${AGAR_SOURCE_DIR}/math/*.3) install(FILES ${AGAR_MATH_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() if(AGAR_NET) file(GLOB AGAR_NET_MAN3 ${AGAR_SOURCE_DIR}/net/*.3) install(FILES ${AGAR_NET_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() if(AGAR_SG) file(GLOB AGAR_SG_MAN3 ${AGAR_SOURCE_DIR}/sg/*.3) install(FILES ${AGAR_SG_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() if(AGAR_SK) file(GLOB AGAR_SK_MAN3 ${AGAR_SOURCE_DIR}/sk/*.3) install(FILES ${AGAR_SK_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() if(AGAR_VG) file(GLOB AGAR_VG_MAN3 ${AGAR_SOURCE_DIR}/vg/*.3) install(FILES ${AGAR_VG_MAN3} DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") endif() # # Uninstall Target. # if(NOT TARGET uninstall) configure_file( "${AGAR_SOURCE_DIR}/mk/cmake_uninstall.cmake.in" "${AGAR_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${AGAR_BINARY_DIR}/cmake_uninstall.cmake) endif()