Convert build system into using cmake.
git-svn-id: svn://svn.code.sf.net/p/jack-keyboard/code/trunk@21 1fa2bf75-7d80-4145-9e94-f9b4e25a1cb2
This commit is contained in:
parent
867088c88c
commit
c76aed55f2
68
CMakeLists.txt
Normal file
68
CMakeLists.txt
Normal file
@ -0,0 +1,68 @@
|
||||
#
|
||||
# Copyright (c) 2011 Hans Petter Selasky. All rights reserved.
|
||||
#
|
||||
# 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 AUTHOR AND 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 AUTHOR OR 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.
|
||||
#
|
||||
#
|
||||
# Makefile for Jack Keyboard
|
||||
#
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/")
|
||||
set(VERSION "2.6")
|
||||
|
||||
set(JackEnable ON CACHE BOOL "Enable support for Jack")
|
||||
set(LashEnable ON CACHE BOOL "Enable support for Lash")
|
||||
set(X11Enable ON CACHE BOOL "Enable support for X11")
|
||||
|
||||
project(jack-keyboard)
|
||||
|
||||
add_executable(jack-keyboard src/jack-keyboard src/pianokeyboard)
|
||||
|
||||
find_package(GTK2 2.2 REQUIRED gtk)
|
||||
include_directories(${GTK2_INCLUDE_DIRS})
|
||||
target_link_libraries(jack-keyboard ${GTK2_LIBRARIES})
|
||||
|
||||
if(JackEnable)
|
||||
find_package(JACK)
|
||||
include_directories(${JACK_INCLUDE_DIR})
|
||||
target_link_libraries(jack-keyboard ${JACK_LIBRARIES})
|
||||
add_definitions(-DHAVE_JACK=1)
|
||||
endif()
|
||||
|
||||
if(LashEnable)
|
||||
find_package(LASH)
|
||||
include_directories(${LASH_INCLUDE_DIR})
|
||||
target_link_libraries(jack-keyboard ${LASH_LIBRARIES})
|
||||
add_definitions(-DHAVE_LASH=1)
|
||||
endif()
|
||||
|
||||
if(X11Enable)
|
||||
find_package(X11)
|
||||
include_directories(${X11_INCLUDE_DIR})
|
||||
target_link_libraries(jack-keyboard ${X11_LIBRARIES})
|
||||
add_definitions(-DHAVE_X11=1)
|
||||
endif()
|
||||
|
||||
install(TARGETS jack-keyboard RUNTIME DESTINATION bin)
|
||||
install(FILES pixmaps/jack-keyboard.png DESTINATION share/pixmaps)
|
||||
install(FILES src/jack-keyboard.desktop DESTINATION share/applications)
|
47
Makefile
Normal file
47
Makefile
Normal file
@ -0,0 +1,47 @@
|
||||
VERSION?=2.6
|
||||
|
||||
help:
|
||||
@echo "Targets: configure all clean install package"
|
||||
|
||||
configure:
|
||||
|
||||
rm -rf build
|
||||
|
||||
mkdir build
|
||||
|
||||
cd build ; cmake ..
|
||||
|
||||
all:
|
||||
make -C build all
|
||||
|
||||
install:
|
||||
make -C build install
|
||||
|
||||
clean:
|
||||
make -C build clean
|
||||
|
||||
package:
|
||||
make -C build clean || echo -n
|
||||
|
||||
tar -cvf temp.tar --exclude="*~" --exclude="*#" \
|
||||
--exclude=".svn" --exclude="*.orig" --exclude="*.rej" \
|
||||
AUTHORS \
|
||||
CMakeLists.txt \
|
||||
COPYING \
|
||||
Makefile \
|
||||
NEWS \
|
||||
README \
|
||||
TODO \
|
||||
cmake \
|
||||
man \
|
||||
src
|
||||
|
||||
rm -rf jack-keyboard-${VERSION}
|
||||
|
||||
mkdir jack-keyboard-${VERSION}
|
||||
|
||||
tar -xvf temp.tar -C jack-keyboard-${VERSION}
|
||||
|
||||
rm -rf temp.tar
|
||||
|
||||
tar -zcvf jack-keyboard-${VERSION}.tar.gz jack-keyboard-${VERSION}
|
@ -1,2 +0,0 @@
|
||||
SUBDIRS = src man pixmaps
|
||||
|
28
cmake/FindJACK.cmake
Normal file
28
cmake/FindJACK.cmake
Normal file
@ -0,0 +1,28 @@
|
||||
# - Try to find Jack library
|
||||
# Once done this will define:
|
||||
# JACK_FOUND - system has JACK
|
||||
# JACK_INCLUDE_DIR - incude paths to use
|
||||
# JACK_LIBRARIES - Link these to use
|
||||
|
||||
SET(JACK_FOUND 0)
|
||||
|
||||
FIND_PATH(JACK_INCLUDE_DIR jack/ringbuffer.h
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
)
|
||||
|
||||
FIND_LIBRARY(JACK_LIBRARIES jack
|
||||
/usr/local/lib
|
||||
/usr/lib
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set JACK_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(JACK DEFAULT_MSG JACK_LIBRARIES JACK_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
JACK_INCLUDE_DIR
|
||||
JACK_LIBRARIES
|
||||
)
|
||||
|
27
cmake/FindLASH.cmake
Normal file
27
cmake/FindLASH.cmake
Normal file
@ -0,0 +1,27 @@
|
||||
# - Try to find Lash library
|
||||
# Once done this will define:
|
||||
# LASH_FOUND - system has LASH
|
||||
# LASH_INCLUDE_DIR - incude paths to use
|
||||
# LASH_LIBRARIES - Link these to use
|
||||
|
||||
SET(LASH_FOUND 0)
|
||||
|
||||
FIND_PATH(LASH_INCLUDE_DIR lash/lash.h
|
||||
/usr/local/include/lash-1.0
|
||||
/usr/include/lash-1.0
|
||||
)
|
||||
|
||||
FIND_LIBRARY(LASH_LIBRARIES lash
|
||||
/usr/local/lib
|
||||
/usr/lib
|
||||
)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set LASH_FOUND to TRUE
|
||||
# if all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LASH DEFAULT_MSG LASH_LIBRARIES LASH_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
LASH_INCLUDE_DIR
|
||||
LASH_LIBRARIES
|
||||
)
|
81
configure.ac
81
configure.ac
@ -1,81 +0,0 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.61)
|
||||
AC_INIT([jack-keyboard], [2.6], [trasz@FreeBSD.org])
|
||||
AM_INIT_AUTOMAKE([-Wall foreign])
|
||||
AC_CONFIG_SRCDIR([config.h.in])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
|
||||
# Checks for libraries.
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CHECK_HEADERS([stdlib.h string.h sys/time.h unistd.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_HEADER_TIME
|
||||
AC_C_VOLATILE
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_STRTOD
|
||||
AC_CHECK_FUNCS([gettimeofday memset strcasecmp strdup])
|
||||
|
||||
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.2)
|
||||
AC_SUBST(GTK_CFLAGS)
|
||||
AC_SUBST(GTK_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.12)
|
||||
AC_SUBST(GLIB_CFLAGS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.2)
|
||||
AC_SUBST(GTHREAD_CFLAGS)
|
||||
AC_SUBST(GTHREAD_LIBS)
|
||||
|
||||
AC_ARG_WITH([x11],
|
||||
[AS_HELP_STRING([--with-x11],
|
||||
[support keyboard grabbing @<:@default=check@:>@])],
|
||||
[],
|
||||
[with_x11=check])
|
||||
|
||||
AS_IF([test "x$with_x11" != xno],
|
||||
[PKG_CHECK_MODULES(X11, x11, AC_DEFINE([HAVE_X11], [], [Defined if we have X11 support.]),
|
||||
[if test "x$with_x11" != xcheck; then
|
||||
AC_MSG_FAILURE([--with-x11 was given, but x11 was not found])
|
||||
fi
|
||||
])])
|
||||
|
||||
AC_SUBST(X11_CFLAGS)
|
||||
AC_SUBST(X11_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES(JACK, jack >= 0.102.0)
|
||||
AC_SUBST(JACK_CFLAGS)
|
||||
AC_SUBST(JACK_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES(JACK_MIDI_NEEDS_NFRAMES, jack < 0.105.00, AC_DEFINE(JACK_MIDI_NEEDS_NFRAMES, 1, [whether or not JACK routines need nframes parameter]), true)
|
||||
|
||||
AC_ARG_WITH([lash],
|
||||
[AS_HELP_STRING([--with-lash],
|
||||
[support LASH @<:@default=check@:>@])],
|
||||
[],
|
||||
[with_lash=check])
|
||||
|
||||
AS_IF([test "x$with_lash" != xno],
|
||||
[PKG_CHECK_MODULES(LASH, lash-1.0, AC_DEFINE([HAVE_LASH], [], [Defined if we have LASH support.]),
|
||||
[if test "x$with_lash" != xcheck; then
|
||||
AC_MSG_FAILURE([--with-lash was given, but LASH was not found])
|
||||
fi
|
||||
])])
|
||||
|
||||
AC_SUBST(LASH_CFLAGS)
|
||||
AC_SUBST(LASH_LIBS)
|
||||
|
||||
AC_CONFIG_FILES([Makefile src/Makefile man/Makefile pixmaps/Makefile])
|
||||
AC_OUTPUT
|
||||
|
@ -1,4 +0,0 @@
|
||||
man_MANS = jack-keyboard.1
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
|
@ -1,17 +0,0 @@
|
||||
pixmapsdir = $(datadir)/pixmaps
|
||||
pixmaps_DATA = jack-keyboard.png
|
||||
EXTRA_DIST = $(pixmaps_DATA)
|
||||
|
||||
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
|
||||
|
||||
install-data-hook: update-icon-cache
|
||||
uninstall-hook: update-icon-cache
|
||||
update-icon-cache:
|
||||
@-if test -z "$(DESTDIR)"; then \
|
||||
echo "Updating Gtk icon cache."; \
|
||||
$(gtk_update_icon_cache); \
|
||||
else \
|
||||
echo "*** Icon cache not updated. After (un)install, run this:"; \
|
||||
echo "*** $(gtk_update_icon_cache)"; \
|
||||
fi
|
||||
|
@ -1,10 +0,0 @@
|
||||
bin_PROGRAMS = jack-keyboard
|
||||
jack_keyboard_SOURCES = jack-keyboard.c pianokeyboard.c pianokeyboard.h
|
||||
jack_keyboard_LDADD = $(GTK_LIBS) $(GLIB_LIBS) $(GTHREAD_LIBS) $(X11_LIBS) $(JACK_LIBS) $(LASH_LIBS)
|
||||
jack_keyboard_CFLAGS = $(GTK_CFLAGS) $(GLIB_CFLAGS) $(GTHREAD_CFLAGS) $(X11_CFLAGS) $(JACK_CFLAGS) $(LASH_CFLAGS) \
|
||||
-DG_LOG_DOMAIN=\"jack-keyboard\"
|
||||
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_DATA = jack-keyboard.desktop
|
||||
EXTRA_DIST = $(desktop_DATA)
|
||||
|
@ -25,9 +25,11 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is jack-keyboard 2.6, a virtual keyboard for JACK MIDI.
|
||||
* jack-keyboard is a virtual keyboard for JACK MIDI.
|
||||
*
|
||||
* For questions and comments, contact Edward Tomasz Napierala <trasz@FreeBSD.org>.
|
||||
* For questions and comments, you can contact:
|
||||
* - Edward Tomasz Napierala <trasz@FreeBSD.org>
|
||||
* - Hans Petter Selasky <hselasky@FreeBSD.org>.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@ -1689,7 +1691,7 @@ log_handler(const gchar *log_domain, GLogLevelFlags log_level, const gchar *mess
|
||||
void
|
||||
show_version(void)
|
||||
{
|
||||
fprintf(stdout, "%s\n", PACKAGE_STRING);
|
||||
fprintf(stdout, "%s\n", PACKAGE_NAME " v" PACKAGE_VERSION);
|
||||
|
||||
exit(EX_OK);
|
||||
}
|
||||
|
@ -217,11 +217,11 @@ key_binding(PianoKeyboard *pk, const char *key)
|
||||
if (!found)
|
||||
return (-1);
|
||||
|
||||
return ((int)note);
|
||||
return ((long)note);
|
||||
}
|
||||
|
||||
static void
|
||||
bind_key(PianoKeyboard *pk, const char *key, int note)
|
||||
bind_key(PianoKeyboard *pk, const char *key, long note)
|
||||
{
|
||||
assert(pk->key_bindings != NULL);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user