Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable mapping of Text and Key & Updated Direct2D drawing #190

Open
wants to merge 5 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*.vcxproj.filters
*.vcxproj.user
*.xcodeproj
*.lib
*~
build/bin
build/guidodir
Expand Down
23 changes: 23 additions & 0 deletions guidoar-dev/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
.DS_Store
*~
*.o
build/guidoar.framework/
build/guidoar.tgz
build/guidoardir
build/iosdir
build/lib
build/libguidoar.a
build/macos/
build/android/libguidoar.so
build/android/libs/
build/android/obj/
guidocalculus/package/GuidoCalculus.app/
guidocalculus/src/.qmake.stash
guidocalculus/src/Debug/
guidocalculus/src/GuidoCalculus.build/
guidocalculus/src/GuidoCalculus.xcodeproj/
guidocalculus/src/Info.plist
guidocalculus/src/Release/
guidocalculus/src/project.pbxproj
guidocalculus/src/tmpSrc/
validation/0.90/
14 changes: 14 additions & 0 deletions guidoar-dev/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
os: linux
dist: xenial
language: cpp
compiler: clang

before_install:
- sudo apt-get -qq update

branches:
only:
- dev
- master

script: make -C build MIDIEXPORT=no
Empty file.
3 changes: 3 additions & 0 deletions guidoar-dev/build/.vs/ProjectSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"CurrentProjectSetting": "x64-Debug (default)"
}
10 changes: 10 additions & 0 deletions guidoar-dev/build/.vs/VSWorkspaceState.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"ExpandedNodes": [
"",
"\\android",
"\\android\\jni",
"\\out",
"\\out\\build"
],
"PreviewInSolutionExplorer": false
}
Binary file added guidoar-dev/build/.vs/build/v16/.suo
Binary file not shown.
Binary file added guidoar-dev/build/.vs/cmake.db
Binary file not shown.
Binary file added guidoar-dev/build/.vs/slnx.sqlite
Binary file not shown.
191 changes: 191 additions & 0 deletions guidoar-dev/build/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
#######################################
# CMAKE guidoar
#######################################
project(guidoar)
cmake_minimum_required(VERSION 2.6)

set(target guidoar)

#######################################
# version management
set (VERSION 1.00)
set (VERSIONSTR "v.1.00")
set (SOVERS 1)

set (BINDIR ${CMAKE_CURRENT_SOURCE_DIR}/bin)
set (LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/lib)
get_filename_component(ROOT ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)

set (CMAKE_BUILD_TYPE Release)

if(UNIX)
add_definitions(-Wall -DGCC)
endif()

set (CMAKE_CXX_STANDARD 11)

#######################################
# windows support
if(WIN32)
add_definitions(-DWINVER=0x0400 -DWIN32)
if (${CMAKE_GENERATOR} MATCHES ".*Win64")
set (WIN win64)
else()
set (WIN win32)
endif ()
endif()

#######################################
# Options disabled by default
option ( ALL "build the library and the tools" off )
option ( MIDIEXPORT "MIDI export" off )

if(APPLE)
add_definitions(-DAPPLE)

#######################################
# iOS support
if ( IOS )
message (STATUS "Generates project for iOS - Use -DIOS=no to change.")
set (ALL "no")
set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "iPhoneOS")
# set (CMAKE_OSX_ARCHITECTURES "arm64 armv7 armv7s x86_64")
set (CMAKE_OSX_SYSROOT "iphoneos")
set (IOS_DEPLOYMENT_TARGET 9.0)
set (libtype STATIC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGUIDOAR_EXPORTS -stdlib=libc++")
else ()
message (STATUS "Generates Mac OS project- Use -DIOS=yes to change.")
#######################################
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
set (CMAKE_C++_FLAGS -mmacosx-version-min=10.9)
set (CMAKE_LDFLAGS -mmacosx-version-min=10.9)
set (CMAKE_OSX_DEPLOYMENT_TARGET 10.9)
set (MACOSX_DEPLOYMENT_TARGET 10.9)
endif ()
endif()

if(NOT WIN32)
set (CMAKE_C++_FLAGS ${CMAKE_C++_FLAGS} -Wno-overloaded-virtual)
endif()



#######################################
# set directories, src and headers.
set (GAR ${CMAKE_CURRENT_SOURCE_DIR}/..)
set (GARSRC ${GAR}/src)
set (GARTOOLS ${GAR}/tools)
set (SRCFOLDERS interface guido guido/abstract lib operations visitors midi parser)

foreach(folder ${SRCFOLDERS})
set(SRC ${SRC} "${GARSRC}/${folder}/*.cpp") # add source files
endforeach(folder)
file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})

foreach(folder ${SRCFOLDERS})
set(HEADERS ${HEADERS} "${GARSRC}/${folder}/*.h") # add header files
endforeach(folder)
file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})

foreach(folder ${SRCFOLDERS})
set(INCL ${INCL} "${GARSRC}/${folder}") # add include folders
endforeach(folder)


#######################################
# set includes
include_directories( ${INCL} ${GARSRC}/midisharelight)
#set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)

#######################################
# midi export support
if (MIDIEXPORT STREQUAL "yes")
message (STATUS "MIDI export will be generated (requires MidiShareLight) - Use -DMIDIEXPORT=no to change.")
add_definitions(-DMIDIEXPORT)
if (WIN32)
if (${CMAKE_CL_64})
set(LINK ${LINK} " ${GARSRC}/midisharelight/win64/midisharelight64.lib")
else()
set(LINK ${LINK} " ${GARSRC}/midisharelight/win32/midisharelight.lib")
endif()
elseif(APPLE)
set(LINK ${LINK} "-L${GARSRC}/midisharelight/macos -lmidisharelight")
elseif(UNIX)
set(LINK ${LINK} "-L/usr/local/lib -lmidisharelight")
endif (WIN32)
else()
message (STATUS "MIDI export will not be generated - Use -DMIDIEXPORT=yes to change (requires MidiShareLight).")
endif()


#######################################
# set library target
set(LIBCONTENT ${CORESRC} ${COREH})
if(WIN32)
enable_language(RC)
set(LIBCONTENT ${LIBCONTENT} ${GAR}/rsrc/libguidoar.rc)
endif()

if (IOS)
add_library(${target} STATIC ${LIBCONTENT})
set_target_properties ( ${target} PROPERTIES
XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET ${IOS_DEPLOYMENT_TARGET} )

else()
add_library(${target} SHARED ${LIBCONTENT})
set_target_properties (${target} PROPERTIES DEFINE_SYMBOL GUIDOAR_EXPORTS)
set_target_properties (${target} PROPERTIES PUBLIC_HEADER "${COREH}")
set_target_properties (${target} PROPERTIES
FRAMEWORK TRUE
FRAMEWORK_VERSION A
VERSION ${VERSION}
SOVERSION ${SOVERS}
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${VERSIONSTR}
MACOSX_FRAMEWORK_BUNDLE_VERSION ${VERSION}
)
endif()

target_link_libraries( ${target} ${LINK})
set_target_properties( ${target} PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${LIBDIR}
LIBRARY_OUTPUT_DIRECTORY ${LIBDIR}
ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${LIBDIR}
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${LIBDIR})


#######################################
# set tools targets
if (ALL)

file (GLOB TOOLS RELATIVE ${GARTOOLS} "${GARTOOLS}/*.cpp")

foreach(toolcpp ${TOOLS})
string(REPLACE ".cpp" "" tool ${toolcpp})
add_executable( ${tool} ${GARTOOLS}/${tool}.cpp )
target_link_libraries( ${tool} ${target})
set_target_properties( ${tool} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${BINDIR}
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BINDIR})
add_dependencies(${tool} ${target})
endforeach()

if(${USEMidiShare})
target_link_libraries( guido2midi ${MSH})
set_target_properties (guido2midi PROPERTIES COMPILE_FLAGS -I/usr/local/include)
endif()
endif()


if(NOT IOS)
#######################################
# install setup
message (STATUS "Install prefix set to ${CMAKE_INSTALL_PREFIX}")
install ( TARGETS ${target}
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/include/guidoar
)

endif()
15 changes: 15 additions & 0 deletions guidoar-dev/build/CMakeSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"configurations": [
{
"name": "x64-Debug (default)",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x64_x64" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": ""
}
]
}
101 changes: 101 additions & 0 deletions guidoar-dev/build/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#
# Guido AR Makefile
#
#


TARGET := undefined

system := $(shell uname -s)
# normalizes MINGW versions
system := $(shell echo $(system) | grep -e MINGW -e MSYS > /dev/null && echo MINGW || echo $(system))
ifeq ($(system), Darwin)
GENERATOR ?= Xcode
PREFIX ?= /usr/local
PROJ ?= $(BUILDDIR)/guidolib.xcodeproj
JOBS ?= -jobs 4
else
ifeq ($(system), MINGW)
GENERATOR ?= "Visual Studio 14 2015 Win64"
PROJ ?= $(BUILDDIR)/guidolib.sln
JOBS ?= /maxcpucount:4
else
GENERATOR ?= "Unix Makefiles"
PREFIX ?= /usr/local
PROJ ?= $(BUILDDIR)/Makefile
JOBS ?= -j 4
endif
endif

.PHONY: ios android

BUILDDIR ?= guidoardir
BUILDDIR ?= guidoardir
MIDIEXPORT ?= no
CMAKEOPT ?= -Wno-dev

ifeq ($(MIDIEXPORT), yes)
CMAKEOPT += -DMIDIEXPORT=yes
else
CMAKEOPT += -DMIDIEXPORT=no
endif
BUILDOPT ?= --config Release


#===============================================================
all : $(PROJ)
cmake --build $(BUILDDIR) $(BUILDOPT) -- $(JOBS)

$(PROJ) : $(BUILDDIR)
cd $(BUILDDIR) && cmake $(CMAKEOPT) .. -G $(GENERATOR)

cmake : $(BUILDDIR)
cd $(BUILDDIR) && cmake $(CMAKEOPT) ..

$(BUILDDIR) :
mkdir $(BUILDDIR)


#===============================================================
help :
@echo guidoar makefile - Targets are :
@echo " all (default): build the guidoar library,"
@echo
@echo "Platform targets to build the guidoar library are:"
@echo " ios"
@echo " windows (build 32 and 64 bits library)"
@echo " linux"
@echo " android : build the guidoar static library for Android"

#===============================================================
# building the library for iOS
#===============================================================
ios : iosdir/guidoar.xcodeproj
cd iosdir && cmake --build . $(BUILDOPT) --target guidoar -- $(JOBS)

iosdir/guidoar.xcodeproj:
@[ -d iosdir ] || mkdir iosdir
cd iosdir && cmake -DIOS=yes -DMIDIEXPORT=no -DIOS=on .. -G Xcode


#===============================================================
# building the library for Android
#===============================================================
android : PLATFORM ?= 22
android : J ?= 6
android :
@echo "### Android platform is android-$(PLATFORM)"
@echo "### Use PLATFORM=xx to change"
ndk-build -C android -j $(J) APP_PLATFORM=android-$(PLATFORM)

androidclean:
cd android && rm -rf libs obj


#===============================================================
# install target
#===============================================================
install:
cmake --build $(BUILDDIR) --config Release --target install


18 changes: 18 additions & 0 deletions guidoar-dev/build/android/jni/Android.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#### Shared library for Guido engine ####

LOCAL_PATH := $(call my-dir)
SRC := $(LOCAL_PATH)/../../../src

include $(CLEAR_VARS)

LOCAL_MODULE := guidoar

# SRC var is a trick to use wildcard in android.mk
# if no wildcard, you have better to use relative path, conforming to android doc
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(SRC)/guido/*.cpp) $(wildcard $(SRC)/guido/abstract/*.cpp) $(wildcard $(SRC)/lib/*.cpp) $(wildcard $(SRC)/operations/*.cpp) $(wildcard $(SRC)/visitors/*.cpp) $(wildcard $(SRC)/parser/*.cpp) $(wildcard $(SRC)/interface/*.cpp) )
LOCAL_EXPORT_C_INCLUDES := $(addprefix $(SRC)/, interface)
LOCAL_C_INCLUDES := $(subst $(LOCAL_PATH)/../,,$(wildcard $(SRC)/*/) $(SRC)/guido/abstract)
LOCAL_CPPFLAGS := -DGUIDOAR_EXPORTS -frtti

include $(BUILD_SHARED_LIBRARY)

4 changes: 4 additions & 0 deletions guidoar-dev/build/android/jni/Application.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

APP_STL := c++_static
APP_PLATFORM ?= android-22
APP_ABI := all
Loading