From 8337979da8e396d9dd3da349044bbdc99252f492 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Sat, 11 Jan 2020 02:45:40 +0100 Subject: [PATCH 01/14] Added cmakes in blocks/ - box2D and basicapp (#1) --- .../Basic Box2D/proj/cmake/CMakeLists.txt | 17 ++++++++++++++ .../BasicApp/OpenGL/proj/cmake/CMakeLists.txt | 23 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 blocks/Box2D/templates/Basic Box2D/proj/cmake/CMakeLists.txt create mode 100644 blocks/__AppTemplates/BasicApp/OpenGL/proj/cmake/CMakeLists.txt diff --git a/blocks/Box2D/templates/Basic Box2D/proj/cmake/CMakeLists.txt b/blocks/Box2D/templates/Basic Box2D/proj/cmake/CMakeLists.txt new file mode 100644 index 0000000000..6e36f2e1c1 --- /dev/null +++ b/blocks/Box2D/templates/Basic Box2D/proj/cmake/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required( VERSION 2.8 FATAL_ERROR ) +set( CMAKE_VERBOSE_MAKEFILE ON ) + +project( BasicBox2D ) +set( APP_NAME "${PROJECT_NAME}App" ) + +get_filename_component( CINDER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../.." ABSOLUTE ) +get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) + +include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) + +ci_make_app( + APP_NAME ${APP_NAME} + SOURCES ${APP_PATH}/src/_TBOX_PREFIX_App.cpp + CINDER_PATH ${CINDER_PATH} + BLOCKS Box2D +) diff --git a/blocks/__AppTemplates/BasicApp/OpenGL/proj/cmake/CMakeLists.txt b/blocks/__AppTemplates/BasicApp/OpenGL/proj/cmake/CMakeLists.txt new file mode 100644 index 0000000000..a3cd6d048a --- /dev/null +++ b/blocks/__AppTemplates/BasicApp/OpenGL/proj/cmake/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required( VERSION 2.8 FATAL_ERROR ) +set( CMAKE_VERBOSE_MAKEFILE ON ) + +project( Basic ) + +get_filename_component( CINDER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../.." ABSOLUTE ) +get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) + +# wildcard on resources +file (GLOB APP_RESOURCES + ${APP_PATH}/resources/* +) + +include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) + +ci_make_app( + APP_NAME ${PROJECT_NAME}App + CINDER_PATH ${CINDER_PATH} + SOURCES ${APP_PATH}/src/_TBOX_PREFIX_App.cpp + INCLUDES ${APP_PATH}/include + RESOURCES ${APP_RESOURCES} + ASSETS_PATH ${APP_PATH}/assets +) From c310e7283842d03a29327ddb33901b6753171964 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Sat, 11 Jan 2020 22:58:13 +0100 Subject: [PATCH 02/14] Added RESOURCES to samples/Arcball cmake --- samples/ArcballDemo/proj/cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/ArcballDemo/proj/cmake/CMakeLists.txt b/samples/ArcballDemo/proj/cmake/CMakeLists.txt index 9b426f318e..cfe0223f9e 100644 --- a/samples/ArcballDemo/proj/cmake/CMakeLists.txt +++ b/samples/ArcballDemo/proj/cmake/CMakeLists.txt @@ -12,4 +12,5 @@ ci_make_app( SOURCES ${APP_PATH}/src/ArcballDemoApp.cpp CINDER_PATH ${CINDER_PATH} INCLUDES ${APP_PATH}/include + RESOURCES ${APP_PATH}/../data/earth.jpg ) From e4a098b9247d22637f064ebd8af7eb2e79370f66 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Sun, 12 Jan 2020 21:51:09 +0100 Subject: [PATCH 03/14] Fixed opengl samples for linux --- .../LevelOfDetailBasic/proj/cmake/CMakeLists.txt | 14 ++++++++++++++ .../ParticlesBasic/src/ParticlesBasicApp.cpp | 4 ++-- samples/_opengl/VboMesh/src/VboMeshApp.cpp | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 samples/_opengl/LevelOfDetailBasic/proj/cmake/CMakeLists.txt diff --git a/samples/_opengl/LevelOfDetailBasic/proj/cmake/CMakeLists.txt b/samples/_opengl/LevelOfDetailBasic/proj/cmake/CMakeLists.txt new file mode 100644 index 0000000000..4023229255 --- /dev/null +++ b/samples/_opengl/LevelOfDetailBasic/proj/cmake/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required( VERSION 2.8 FATAL_ERROR ) +set( CMAKE_VERBOSE_MAKEFILE ON ) + +project( opengl-LevelOfDetailBasic ) + +get_filename_component( CINDER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../.." ABSOLUTE ) +get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) + +include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) + +ci_make_app( + SOURCES ${APP_PATH}/src/LevelOfDetailBasicApp.cpp + CINDER_PATH ${CINDER_PATH} +) diff --git a/samples/_opengl/ParticlesBasic/src/ParticlesBasicApp.cpp b/samples/_opengl/ParticlesBasic/src/ParticlesBasicApp.cpp index 448a0399cc..34bdb6d6c3 100644 --- a/samples/_opengl/ParticlesBasic/src/ParticlesBasicApp.cpp +++ b/samples/_opengl/ParticlesBasic/src/ParticlesBasicApp.cpp @@ -39,7 +39,7 @@ class BasicParticleApp : public App { bool isOffscreen( const vec2 &v ); public: - static const int NUM_PARTICLES = 10000; + static const int NUM_PARTICLES = 100; float mConservationOfVelocity; float mSpeed; @@ -136,4 +136,4 @@ bool BasicParticleApp::isOffscreen( const vec2 &v ) return ( ( v.x < 0 ) || ( v.x > getWindowWidth() ) || ( v.y < 0 ) || ( v.y > getWindowHeight() ) ); } -CINDER_APP( BasicParticleApp, RendererGl ) \ No newline at end of file +CINDER_APP( BasicParticleApp, RendererGl ) diff --git a/samples/_opengl/VboMesh/src/VboMeshApp.cpp b/samples/_opengl/VboMesh/src/VboMeshApp.cpp index 65156f1e06..5cd48b5d75 100644 --- a/samples/_opengl/VboMesh/src/VboMeshApp.cpp +++ b/samples/_opengl/VboMesh/src/VboMeshApp.cpp @@ -7,7 +7,7 @@ #include "cinder/app/App.h" #include "cinder/app/RendererGl.h" #include "cinder/gl/gl.h" -#include "cinder/GeomIO.h" +#include "cinder/GeomIo.h" #include "cinder/ImageIo.h" #include "cinder/CameraUi.h" From 59ff17b2d607de1dcfad7142f9d2be3d48d882f9 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Sun, 12 Jan 2020 21:55:49 +0100 Subject: [PATCH 04/14] Fixed samples/SurfaceBasic cmake --- samples/SurfaceBasic/proj/cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/SurfaceBasic/proj/cmake/CMakeLists.txt b/samples/SurfaceBasic/proj/cmake/CMakeLists.txt index 336e782965..d2da952da3 100644 --- a/samples/SurfaceBasic/proj/cmake/CMakeLists.txt +++ b/samples/SurfaceBasic/proj/cmake/CMakeLists.txt @@ -12,4 +12,5 @@ ci_make_app( SOURCES ${APP_PATH}/src/SurfaceBasicApp.cpp INCLUDES ${APP_PATH}/include CINDER_PATH ${CINDER_PATH} + RESOURCES ${APP_PATH}/../data/cinder_logo.png ) From de76656970cbf4c0da93c5fb71b6faa7c2c47ca1 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Sun, 12 Jan 2020 22:43:45 +0100 Subject: [PATCH 05/14] Added cmakelists for samples/HighDensityDisplay --- .../HighDensityDisplay/proj/cmake/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 samples/HighDensityDisplay/proj/cmake/CMakeLists.txt diff --git a/samples/HighDensityDisplay/proj/cmake/CMakeLists.txt b/samples/HighDensityDisplay/proj/cmake/CMakeLists.txt new file mode 100644 index 0000000000..73558c4535 --- /dev/null +++ b/samples/HighDensityDisplay/proj/cmake/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required( VERSION 2.8 FATAL_ERROR ) +set( CMAKE_VERBOSE_MAKEFILE ON ) + +project( HighIntensityDisplay ) + +get_filename_component( CINDER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../.." ABSOLUTE ) +get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) + +include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) + +ci_make_app( + SOURCES ${APP_PATH}/src/HighDensityDisplayApp.cpp + CINDER_PATH ${CINDER_PATH} + INCLUDES ${APP_PATH}/include +) From f1e4762a461d27fd46b96d86f07b9c3f3bd87c93 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Sun, 12 Jan 2020 22:55:05 +0100 Subject: [PATCH 06/14] Fixed samples/CameraPersp cmakelists --- samples/CameraPersp/proj/cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/CameraPersp/proj/cmake/CMakeLists.txt b/samples/CameraPersp/proj/cmake/CMakeLists.txt index e4a37f0528..22d5c2876e 100644 --- a/samples/CameraPersp/proj/cmake/CMakeLists.txt +++ b/samples/CameraPersp/proj/cmake/CMakeLists.txt @@ -12,4 +12,5 @@ ci_make_app( SOURCES ${APP_PATH}/src/CameraPerspApp.cpp INCLUDES ${APP_PATH}/include CINDER_PATH ${CINDER_PATH} + RESOURCES ${APP_PATH}/../data/environment_maps/humus_sf.jpg ) From 8abbe5f4c6e8165cd59677a6e39208e7b465ab23 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Sun, 12 Jan 2020 23:23:42 +0100 Subject: [PATCH 07/14] Fixed samples/_timeline linux builds --- .../ImageAccordion/proj/cmake/CMakeLists.txt | 16 +++++++++++++++- .../ImageAccordion/src/ImageAccordionApp.cpp | 4 ++-- .../PaletteBrowser/proj/cmake/CMakeLists.txt | 9 ++++++++- .../VisualDictionary/proj/cmake/CMakeLists.txt | 10 +++++++++- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/samples/_timeline/ImageAccordion/proj/cmake/CMakeLists.txt b/samples/_timeline/ImageAccordion/proj/cmake/CMakeLists.txt index 9893f110ce..afbcc6fab8 100644 --- a/samples/_timeline/ImageAccordion/proj/cmake/CMakeLists.txt +++ b/samples/_timeline/ImageAccordion/proj/cmake/CMakeLists.txt @@ -5,10 +5,24 @@ project( timeline-ImageAccordion ) get_filename_component( CINDER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../.." ABSOLUTE ) get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) +get_filename_component( DATA_PATH "${APP_PATH}/../../data" ABSOLUTE ) + +list( APPEND RESOURCES + ${DATA_PATH}/photo_1.jpg + ${DATA_PATH}/photo_2.jpg + ${DATA_PATH}/photo_3.jpg + ${DATA_PATH}/photo_4.jpg + ${DATA_PATH}/photo_5.jpg + ${DATA_PATH}/photo_6.jpg + ${DATA_PATH}/photo_7.jpg + ${DATA_PATH}/photo_8.jpg + ) include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) ci_make_app( - SOURCES ${APP_PATH}/src/ImageAccordionApp.cpp + SOURCES ${APP_PATH}/src/ImageAccordionApp.cpp ${APP_PATH}/src/AccordionItem.cpp CINDER_PATH ${CINDER_PATH} + INCLUDES ${APP_PATH}/include + RESOURCES ${RESOURCES} ) diff --git a/samples/_timeline/ImageAccordion/src/ImageAccordionApp.cpp b/samples/_timeline/ImageAccordion/src/ImageAccordionApp.cpp index a3dfa7ccf1..cd4c20d6a0 100644 --- a/samples/_timeline/ImageAccordion/src/ImageAccordionApp.cpp +++ b/samples/_timeline/ImageAccordion/src/ImageAccordionApp.cpp @@ -13,7 +13,7 @@ #include "cinder/app/App.h" #include "cinder/app/RendererGl.h" #include "cinder/gl/gl.h" -#include "cinder/ImageIO.h" +#include "cinder/ImageIo.h" #include "cinder/Rand.h" #include "cinder/Timeline.h" @@ -198,4 +198,4 @@ void ImageAccordionApp::draw() } } -CINDER_APP( ImageAccordionApp, RendererGl( RendererGl::Options().msaa( 4 ) ) ) \ No newline at end of file +CINDER_APP( ImageAccordionApp, RendererGl( RendererGl::Options().msaa( 4 ) ) ) diff --git a/samples/_timeline/PaletteBrowser/proj/cmake/CMakeLists.txt b/samples/_timeline/PaletteBrowser/proj/cmake/CMakeLists.txt index 7ef0167f61..853f6d1305 100644 --- a/samples/_timeline/PaletteBrowser/proj/cmake/CMakeLists.txt +++ b/samples/_timeline/PaletteBrowser/proj/cmake/CMakeLists.txt @@ -8,7 +8,14 @@ get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) +list( APPEND PBSOURCES + ${APP_PATH}/src/PaletteBrowserApp.cpp + ${APP_PATH}/src/Item.cpp + ${APP_PATH}/src/Swatch.cpp + ) + ci_make_app( - SOURCES ${APP_PATH}/src/PaletteBrowserApp.cpp + SOURCES ${PBSOURCES} + INCLUDES ${APP_PATH}/include CINDER_PATH ${CINDER_PATH} ) diff --git a/samples/_timeline/VisualDictionary/proj/cmake/CMakeLists.txt b/samples/_timeline/VisualDictionary/proj/cmake/CMakeLists.txt index 8f35bd2a30..d8dd986621 100644 --- a/samples/_timeline/VisualDictionary/proj/cmake/CMakeLists.txt +++ b/samples/_timeline/VisualDictionary/proj/cmake/CMakeLists.txt @@ -8,7 +8,15 @@ get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) +list( APPEND SOURCES + ${APP_PATH}/src/VisualDictionaryApp.cpp + ${APP_PATH}/src/CenterState.cpp + ${APP_PATH}/src/Dictionary.cpp + ${APP_PATH}/src/WordNode.cpp + ) + ci_make_app( - SOURCES ${APP_PATH}/src/VisualDictionaryApp.cpp + SOURCES ${SOURCES} CINDER_PATH ${CINDER_PATH} + INCLUDES ${APP_PATH}/include ) From 6ab94eb3ce161a918f449711bd01722c1a72b53e Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Mon, 13 Jan 2020 00:06:32 +0100 Subject: [PATCH 08/14] Added blocks/Clipper cmake config --- blocks/Clipper/proj/cmake/ClipperConfig.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 blocks/Clipper/proj/cmake/ClipperConfig.cmake diff --git a/blocks/Clipper/proj/cmake/ClipperConfig.cmake b/blocks/Clipper/proj/cmake/ClipperConfig.cmake new file mode 100644 index 0000000000..9b20b56310 --- /dev/null +++ b/blocks/Clipper/proj/cmake/ClipperConfig.cmake @@ -0,0 +1,10 @@ +if( NOT TARGET Clipper ) + get_filename_component( CLIPPER_SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../src" ABSOLUTE ) + + add_library( CLIPPER + ${CLIPPER_SOURCE_PATH}/clipper.cpp + ${CLIPPER_SOURCE_PATH}/CinderClipper.cpp + ) + + target_include_directories( CLIPPER PUBLIC "${CLIPPER_SOURCE_PATH}"/../include ) +endif() From c46edbca4453d75dfcebfa457ca683febaf85ff0 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Mon, 13 Jan 2020 00:14:39 +0100 Subject: [PATCH 09/14] Added cmakelists to blocks/OSC test --- blocks/OSC/test/Test/proj/cmake/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 blocks/OSC/test/Test/proj/cmake/CMakeLists.txt diff --git a/blocks/OSC/test/Test/proj/cmake/CMakeLists.txt b/blocks/OSC/test/Test/proj/cmake/CMakeLists.txt new file mode 100644 index 0000000000..6dbf61db4e --- /dev/null +++ b/blocks/OSC/test/Test/proj/cmake/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required( VERSION 2.8 FATAL_ERROR ) +set( CMAKE_VERBOSE_MAKEFILE ON ) + +project( OSC-Test ) + +get_filename_component( CINDER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../.." ABSOLUTE ) +get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) + +include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) + +ci_make_app( + SOURCES ${APP_PATH}/src/TestApp.cpp + CINDER_PATH ${CINDER_PATH} + BLOCKS OSC +) From 600cca21b6203ab8487e2c57bf254783b6da6fee Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Wed, 5 Feb 2020 01:07:33 +0100 Subject: [PATCH 10/14] Added cairo block cmake config and updated xml --- blocks/Cairo/cinderblock.xml | 5 +- blocks/Cairo/proj/cmake/CairoConfig.cmake | 24 ++++++++ blocks/Cairo/proj/cmake/FindCairo.cmake | 75 +++++++++++++++++++++++ 3 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 blocks/Cairo/proj/cmake/CairoConfig.cmake create mode 100644 blocks/Cairo/proj/cmake/FindCairo.cmake diff --git a/blocks/Cairo/cinderblock.xml b/blocks/Cairo/cinderblock.xml index 8e91ee268e..1eb4bc8785 100644 --- a/blocks/Cairo/cinderblock.xml +++ b/blocks/Cairo/cinderblock.xml @@ -4,10 +4,11 @@ name="Cairo" id="org.libcinder.cairo" author="Cinder Project" - summary="Cairo support for Mac OS X and Windows." + summary="Cairo support for Mac OS X, linux and Windows." > + include src/Cairo.cpp
include/cinder/cairo/Cairo.h
@@ -24,4 +25,4 @@ include/msw - \ No newline at end of file + diff --git a/blocks/Cairo/proj/cmake/CairoConfig.cmake b/blocks/Cairo/proj/cmake/CairoConfig.cmake new file mode 100644 index 0000000000..d607ea3cb1 --- /dev/null +++ b/blocks/Cairo/proj/cmake/CairoConfig.cmake @@ -0,0 +1,24 @@ +if( NOT TARGET Cairo ) + get_filename_component( CAIRO_SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../src" ABSOLUTE ) + get_filename_component( CAIRO_INCLUDE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../include" ABSOLUTE ) + + list( APPEND CAIRO_SOURCES + ${CAIRO_SOURCE_PATH}/Cairo.cpp + ) + + add_library( Cairo ${CAIRO_SOURCES} ) + + target_include_directories( Cairo PUBLIC "${CAIRO_INCLUDE_PATH}" ) + target_link_libraries( Cairo PRIVATE cinder ) + + # sudo apt-get install libcairo2-dev + set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}" ) + find_package( Cairo REQUIRED ) + target_include_directories( Cairo PUBLIC "${CAIRO_INCLUDE_DIRS}") + target_link_libraries( Cairo PUBLIC "${CAIRO_LIBRARIES}") + + # sudo apt-get install libfreetype6-dev + find_package( Freetype REQUIRED ) + target_include_directories( Cairo PRIVATE ${FREETYPE_INCLUDE_DIRS} ) + target_link_libraries( Cairo ${FREETYPE_LIBRARIES} ) +endif() diff --git a/blocks/Cairo/proj/cmake/FindCairo.cmake b/blocks/Cairo/proj/cmake/FindCairo.cmake new file mode 100644 index 0000000000..d0130ad52f --- /dev/null +++ b/blocks/Cairo/proj/cmake/FindCairo.cmake @@ -0,0 +1,75 @@ +# - Try to find Cairo +# Once done, this will define +# +# CAIRO_FOUND - system has Cairo +# CAIRO_INCLUDE_DIRS - the Cairo include directories +# CAIRO_LIBRARIES - link these to use Cairo +# +# Copyright (C) 2012 Raphael Kubo da Costa +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS +# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +find_package(PkgConfig) +pkg_check_modules(PC_CAIRO QUIET cairo) + +find_path(CAIRO_INCLUDE_DIRS + NAMES cairo.h + HINTS ${PC_CAIRO_INCLUDEDIR} + ${PC_CAIRO_INCLUDE_DIRS} + PATH_SUFFIXES cairo +) + +find_library(CAIRO_LIBRARIES + NAMES cairo + HINTS ${PC_CAIRO_LIBDIR} + ${PC_CAIRO_LIBRARY_DIRS} +) + +if (CAIRO_INCLUDE_DIRS) + if (EXISTS "${CAIRO_INCLUDE_DIRS}/cairo-version.h") + file(READ "${CAIRO_INCLUDE_DIRS}/cairo-version.h" CAIRO_VERSION_CONTENT) + + string(REGEX MATCH "#define +CAIRO_VERSION_MAJOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MAJOR "${CMAKE_MATCH_1}") + + string(REGEX MATCH "#define +CAIRO_VERSION_MINOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MINOR "${CMAKE_MATCH_1}") + + string(REGEX MATCH "#define +CAIRO_VERSION_MICRO +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}") + set(CAIRO_VERSION_MICRO "${CMAKE_MATCH_1}") + + set(CAIRO_VERSION "${CAIRO_VERSION_MAJOR}.${CAIRO_VERSION_MINOR}.${CAIRO_VERSION_MICRO}") + endif () +endif () + +if ("${Cairo_FIND_VERSION}" VERSION_GREATER "${CAIRO_VERSION}") + message(FATAL_ERROR "Required version (" ${Cairo_FIND_VERSION} ") is higher than found version (" ${CAIRO_VERSION} ")") +endif () + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cairo REQUIRED_VARS CAIRO_INCLUDE_DIRS CAIRO_LIBRARIES + VERSION_VAR CAIRO_VERSION) + +mark_as_advanced( + CAIRO_INCLUDE_DIRS + CAIRO_LIBRARIES +) From 7dd067e2ba9b4e8d54ee9fdc9a07dd51779191a5 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Wed, 5 Feb 2020 01:08:10 +0100 Subject: [PATCH 11/14] Fixed cairo block compilation on linux --- blocks/Cairo/include/cinder/cairo/Cairo.h | 41 +---------------------- blocks/Cairo/src/Cairo.cpp | 10 ++++-- 2 files changed, 9 insertions(+), 42 deletions(-) diff --git a/blocks/Cairo/include/cinder/cairo/Cairo.h b/blocks/Cairo/include/cinder/cairo/Cairo.h index 8f3007d824..3cf67e86ae 100644 --- a/blocks/Cairo/include/cinder/cairo/Cairo.h +++ b/blocks/Cairo/include/cinder/cairo/Cairo.h @@ -44,47 +44,8 @@ #include #include -// Forward declarations used by our cairo wrappers -struct _cairo_surface; -typedef struct _cairo_surface cairo_surface_t; +#include -struct _cairo; -typedef struct _cairo cairo_t; - -struct cairo_path; -typedef struct cairo_path cairo_path_t; - -struct _cairo_pattern; -typedef struct _cairo_pattern cairo_pattern_t; - -/* -struct _cairo_rectangle; -typedef struct _cairo_rectangle cairo_rectangle_t; - -struct _cairo_rectangle_list; -typedef struct _cairo_rectangle_list cairo_rectangle_list_t; -*/ - -struct _cairo_font_options; -typedef struct _cairo_font_options cairo_font_options_t; - -struct _cairo_matrix; -typedef struct _cairo_matrix cairo_matrix_t; - -struct _cairo_font_face; -typedef struct _cairo_font_face cairo_font_face_t; - -struct _cairo_scaled_font; -typedef struct _cairo_scaled_font cairo_scaled_font_t; - -/*struct _cairo_glyph; -typedef struct _cairo_glyph cairo_glyph_t;*/ - -struct _cairo_text_extents; -typedef struct _cairo_text_extents cairo_text_extents_t; - -struct _cairo_font_extents; -typedef struct _cairo_font_extents cairo_font_extents_t; namespace cinder { namespace cairo { ///////////////////////////////////////////////////////////////////////////// diff --git a/blocks/Cairo/src/Cairo.cpp b/blocks/Cairo/src/Cairo.cpp index 75b961c19c..33f754d6e6 100644 --- a/blocks/Cairo/src/Cairo.cpp +++ b/blocks/Cairo/src/Cairo.cpp @@ -41,6 +41,10 @@ #elif defined( CINDER_MSW ) #include "cinder/app/App.h" #include +#elif defined( CINDER_LINUX ) + #include "cinder/app/App.h" + #include + #include #endif using std::vector; @@ -344,7 +348,7 @@ SurfaceEps::SurfaceEps( const fs::path &filePath, double widthInPoints, double h : SurfaceBase( (int32_t)widthInPoints, (int32_t)heightInPoints ) { mCairoSurface = cairo_ps_surface_create( filePath.string().c_str(), widthInPoints, heightInPoints ); - cairo_ps_surface_set_eps( mCairoSurface, TRUE ); + cairo_ps_surface_set_eps( mCairoSurface, true ); cairo_ps_surface_restrict_to_level( mCairoSurface, ( enableLevel3 ) ? CAIRO_PS_LEVEL_3 : CAIRO_PS_LEVEL_2 ); } @@ -1743,6 +1747,8 @@ void Context::setFont( const cinder::Font &font ) cairo_font_face_t *cairoFont = cairo_quartz_font_face_create_for_cgfont( font.getCgFontRef() ); #elif defined( CINDER_MSW ) cairo_font_face_t *cairoFont = cairo_win32_font_face_create_for_logfontw( const_cast( (const LOGFONTW*)font.getLogfont() ) ); +#elif defined( CINDER_LINUX ) + cairo_font_face_t *cairoFont = cairo_ft_font_face_create_for_ft_face( font.getFreetypeFace(), 0 ); #endif cairo_set_font_face( mCairo, cairoFont ); cairo_set_font_size( mCairo, font.getSize() ); @@ -2054,7 +2060,7 @@ class SvgRendererCairo : public svg::Renderer { fontMatrix *= rotationMatrix; mCtx.setFontMatrix( fontMatrix ); TextBox tbox = TextBox().font( *font ).text( span.getString() ); - std::vector > glyphs = tbox.measureGlyphs(); + std::vector > glyphs = tbox.measureGlyphs(); vec2 curPoint = mCtx.getCurrentPoint(); for( size_t g = 0; g < glyphs.size(); ++g ) { mCtx.save(); From c47cfe12a8f6e6612da4fc76b837b056c7a114fd Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Wed, 5 Feb 2020 01:44:51 +0100 Subject: [PATCH 12/14] Fixed cmakelists of all _svg samples, now supported on linux --- .../_svg/AnimatedReveal/proj/cmake/CMakeLists.txt | 1 + samples/_svg/EuroMap/proj/cmake/CMakeLists.txt | 1 + .../GoodNightMorning/proj/cmake/CMakeLists.txt | 14 +++++++++++++- .../_svg/SimpleViewer/proj/cmake/CMakeLists.txt | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/samples/_svg/AnimatedReveal/proj/cmake/CMakeLists.txt b/samples/_svg/AnimatedReveal/proj/cmake/CMakeLists.txt index f7c278d00b..c49a40874c 100644 --- a/samples/_svg/AnimatedReveal/proj/cmake/CMakeLists.txt +++ b/samples/_svg/AnimatedReveal/proj/cmake/CMakeLists.txt @@ -11,4 +11,5 @@ include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) ci_make_app( SOURCES ${APP_PATH}/src/AnimatedRevealApp.cpp CINDER_PATH ${CINDER_PATH} + BLOCKS Cairo ) diff --git a/samples/_svg/EuroMap/proj/cmake/CMakeLists.txt b/samples/_svg/EuroMap/proj/cmake/CMakeLists.txt index 62cf9bde80..94f261f13e 100644 --- a/samples/_svg/EuroMap/proj/cmake/CMakeLists.txt +++ b/samples/_svg/EuroMap/proj/cmake/CMakeLists.txt @@ -11,4 +11,5 @@ include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) ci_make_app( SOURCES ${APP_PATH}/src/EuroMapApp.cpp CINDER_PATH ${CINDER_PATH} + BLOCKS Cairo ) diff --git a/samples/_svg/GoodNightMorning/proj/cmake/CMakeLists.txt b/samples/_svg/GoodNightMorning/proj/cmake/CMakeLists.txt index d09a8ed585..d9831f7c0e 100644 --- a/samples/_svg/GoodNightMorning/proj/cmake/CMakeLists.txt +++ b/samples/_svg/GoodNightMorning/proj/cmake/CMakeLists.txt @@ -8,7 +8,19 @@ get_filename_component( APP_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../" ABSOLUTE ) include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) +set( SRC_FILES + ${APP_PATH}/src/GoodNightMorningApp.cpp + ${APP_PATH}/src/TweetStream.cpp +) + +set( INC_PATHS + ${APP_PATH}/include + ${APP_PATH}/src +) + ci_make_app( - SOURCES ${APP_PATH}/src/GoodNightMorningApp.cpp + SOURCES ${SRC_FILES} + INCLUDES ${INC_FILES} CINDER_PATH ${CINDER_PATH} + BLOCKS Cairo ) diff --git a/samples/_svg/SimpleViewer/proj/cmake/CMakeLists.txt b/samples/_svg/SimpleViewer/proj/cmake/CMakeLists.txt index de643908e0..963944e355 100644 --- a/samples/_svg/SimpleViewer/proj/cmake/CMakeLists.txt +++ b/samples/_svg/SimpleViewer/proj/cmake/CMakeLists.txt @@ -11,4 +11,5 @@ include( "${CINDER_PATH}/proj/cmake/modules/cinderMakeApp.cmake" ) ci_make_app( SOURCES ${APP_PATH}/src/SimpleViewerApp.cpp CINDER_PATH ${CINDER_PATH} + BLOCKS Cairo ) From ff4aba4e752789a784ada505bbb3ae133b488be3 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Wed, 5 Feb 2020 01:46:10 +0100 Subject: [PATCH 13/14] Improved cairo cmake config --- blocks/Cairo/proj/cmake/CairoConfig.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blocks/Cairo/proj/cmake/CairoConfig.cmake b/blocks/Cairo/proj/cmake/CairoConfig.cmake index d607ea3cb1..5a4fe4fa98 100644 --- a/blocks/Cairo/proj/cmake/CairoConfig.cmake +++ b/blocks/Cairo/proj/cmake/CairoConfig.cmake @@ -20,5 +20,5 @@ if( NOT TARGET Cairo ) # sudo apt-get install libfreetype6-dev find_package( Freetype REQUIRED ) target_include_directories( Cairo PRIVATE ${FREETYPE_INCLUDE_DIRS} ) - target_link_libraries( Cairo ${FREETYPE_LIBRARIES} ) + target_link_libraries( Cairo PRIVATE ${FREETYPE_LIBRARIES} ) endif() From acf279b222ebc9d1638ccf631408cf2c7fe62841 Mon Sep 17 00:00:00 2001 From: Pierre Schefler Date: Thu, 13 Feb 2020 23:52:13 +0100 Subject: [PATCH 14/14] Added list of unsupported samples in linux cmake --- proj/cmake/modules/findCMakeDirs.cmake | 2 +- proj/cmake/platform_linux.cmake | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/proj/cmake/modules/findCMakeDirs.cmake b/proj/cmake/modules/findCMakeDirs.cmake index 2948740500..a088f72ee7 100644 --- a/proj/cmake/modules/findCMakeDirs.cmake +++ b/proj/cmake/modules/findCMakeDirs.cmake @@ -6,7 +6,7 @@ macro( findCMakeDirs RESULT_PATHS BASE_PATH SKIP_PATHS ) set( shouldSkip FALSE ) foreach( skip ${SKIP_PATHS} ) if( f MATCHES ".*${skip}" ) - ci_log_v( "---- [findCMakeDirs] skipping path: ${f}" ) + message( "---- [findCMakeDirs] skipping path: ${f}" ) set( shouldSkip TRUE ) break() endif() diff --git a/proj/cmake/platform_linux.cmake b/proj/cmake/platform_linux.cmake index ac9b355bde..e6605d3be9 100644 --- a/proj/cmake/platform_linux.cmake +++ b/proj/cmake/platform_linux.cmake @@ -4,6 +4,31 @@ set( CMAKE_VERBOSE_MAKEFILE ON ) set( CINDER_PLATFORM "Posix" ) +# Some samples are not available on Linux +list( APPEND CINDER_SKIP_SAMPLES + # Renderer2D is required for: + FontSample + perlinTest + BSpline + CairoBasic + Wisteria + Renderer2dBasic + # Capture class is required for: + CaptureBasic + CaptureCube + # Apple only: + MotionBasic # (uses MotionManager block) + Compass # (uses MotionManager block) + LocationManager # (uses LocationManager block) + iosKeyboard + iosNativeControl + # Quicktime has no linux support: + QuickTimeAdvanced + QuickTimeAvfWriter + QuickTimeBasic + QuickTimeIteration +) + # When CINDER_HEADLESS is set, ${SRC_SET_GLFW} will *not* be compiled. list( APPEND SRC_SET_GLFW ${CINDER_SRC_DIR}/glfw/src/context.c