################################################################################ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # # Please refer to the README for information about making permanent changes. # ################################################################################ ######################################################################## # Project setup ######################################################################## cmake_minimum_required(VERSION 2.8) project(demidi) enable_language(C) enable_testing() set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") ######################################################################## # options ######################################################################## if (EXISTS "${SOURCE_DIR}/.git") OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" ON) else () OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" OFF) endif () IF (ENABLE_DRAFTS) ADD_DEFINITIONS (-DDEMIDI_BUILD_DRAFT_API) ENDIF (ENABLE_DRAFTS) ######################################################################## # platform.h ######################################################################## include(CheckIncludeFile) CHECK_INCLUDE_FILE("linux/wireless.h" HAVE_LINUX_WIRELESS_H) CHECK_INCLUDE_FILE("net/if_media.h" HAVE_NET_IF_MEDIA_H) include(CheckFunctionExists) CHECK_FUNCTION_EXISTS("getifaddrs" HAVE_GETIFADDRS) CHECK_FUNCTION_EXISTS("freeifaddrs" HAVE_FREEIFADDRS) include(CheckIncludeFiles) check_include_files("sys/socket.h;net/if.h" HAVE_NET_IF_H) if (NOT HAVE_NET_IF_H) CHECK_INCLUDE_FILE("net/if.h" HAVE_NET_IF_H) endif() file(WRITE "${SOURCE_DIR}/src/platform.h.in" " #cmakedefine HAVE_LINUX_WIRELESS_H #cmakedefine HAVE_NET_IF_H #cmakedefine HAVE_NET_IF_MEDIA_H #cmakedefine HAVE_GETIFADDRS #cmakedefine HAVE_FREEIFADDRS ") configure_file("${SOURCE_DIR}/src/platform.h.in" "${SOURCE_DIR}/src/platform.h") #The MSVC C compiler is too out of date, #so the sources have to be compiled as c++ if (MSVC) enable_language(CXX) file(GLOB sources "${SOURCE_DIR}/src/*.c") set_source_files_properties( ${sources} PROPERTIES LANGUAGE CXX ) set(MORE_LIBRARIES ws2_32 Rpcrt4 Iphlpapi) endif() # required libraries for mingw if (MINGW) set(MORE_LIBRARIES -lws2_32 -lrpcrt4 -liphlpapi) endif() # required libraries for cygwin if (CYGWIN) set(MORE_LIBRARIES -luuid) endif() list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}") set(OPTIONAL_LIBRARIES) ######################################################################## # LIBZMQ dependency ######################################################################## find_package(libzmq REQUIRED) IF (LIBZMQ_FOUND) include_directories(${LIBZMQ_INCLUDE_DIRS}) list(APPEND MORE_LIBRARIES ${LIBZMQ_LIBRARIES}) ELSE (LIBZMQ_FOUND) message( FATAL_ERROR "libzmq not found." ) ENDIF (LIBZMQ_FOUND) ######################################################################## # UUID dependency ######################################################################## find_package(uuid) IF (UUID_FOUND) include_directories(${UUID_INCLUDE_DIRS}) list(APPEND MORE_LIBRARIES ${UUID_LIBRARIES}) add_definitions(-DHAVE_UUID) list(APPEND OPTIONAL_LIBRARIES ${UUID_LIBRARIES}) ENDIF (UUID_FOUND) ######################################################################## # CZMQ dependency ######################################################################## find_package(czmq REQUIRED) IF (CZMQ_FOUND) include_directories(${CZMQ_INCLUDE_DIRS}) list(APPEND MORE_LIBRARIES ${CZMQ_LIBRARIES}) ELSE (CZMQ_FOUND) message( FATAL_ERROR "czmq not found." ) ENDIF (CZMQ_FOUND) ######################################################################## # ZYRE dependency ######################################################################## find_package(zyre REQUIRED) IF (ZYRE_FOUND) include_directories(${ZYRE_INCLUDE_DIRS}) list(APPEND MORE_LIBRARIES ${ZYRE_LIBRARIES}) ELSE (ZYRE_FOUND) message( FATAL_ERROR "zyre not found." ) ENDIF (ZYRE_FOUND) ######################################################################## # ASOUND dependency ######################################################################## find_package(asound REQUIRED) IF (ASOUND_FOUND) include_directories(${ASOUND_INCLUDE_DIRS}) list(APPEND MORE_LIBRARIES ${ASOUND_LIBRARIES}) ELSE (ASOUND_FOUND) message( FATAL_ERROR "asound not found." ) ENDIF (ASOUND_FOUND) ######################################################################## # includes ######################################################################## set (demidi_headers ) source_group ("Header Files" FILES ${demidi_headers}) install(FILES ${demidi_headers} DESTINATION include) ######################################################################## # executables ######################################################################## add_executable( midicast "${SOURCE_DIR}/src/midicast.c" ) target_link_libraries( midicast ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${ZYRE_LIBRARIES} ${ASOUND_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( midicast PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) add_executable( midigrab "${SOURCE_DIR}/src/midigrab.c" ) target_link_libraries( midigrab ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${ZYRE_LIBRARIES} ${ASOUND_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( midigrab PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) ######################################################################## # tests ######################################################################## set(CLASSTEST_TIMEOUT 5 CACHE STRING "Timeout of the selftest of a class") set(TOTAL_TIMEOUT 20 CACHE STRING "Timout of the total testsuite") set(TEST_CLASSES ) foreach(TEST_CLASS ${TEST_CLASSES}) add_test( NAME ${TEST_CLASS} COMMAND demidi_selftest --continue --verbose --test ${TEST_CLASS} ) set_tests_properties( ${TEST_CLASS} PROPERTIES TIMEOUT ${CLASSTEST_TIMEOUT} ) endforeach(TEST_CLASS) ######################################################################## # summary ######################################################################## message (STATUS "*** Version number: ${VERSION}") message (STATUS "*** Install target: ${CMAKE_INSTALL_PREFIX}") ################################################################################ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # # Please refer to the README for information about making permanent changes. # ################################################################################