Make it workable on OpenBSD

- Additional LMMS_BUILD flag.
- Disallow on plugins -Wl,-no-undefined which triggers undefined references.
- Make sure X11 headers are found.

Lib ossaudio is needed only for OpenBSD

redundant expression removal

simplify condition for detection OS 'kind'

seems the last commit brought an issue on OSx travis test ....
This commit is contained in:
David Carlier
2016-03-19 19:26:26 +00:00
parent 97c7208674
commit f4890ec375
13 changed files with 29 additions and 14 deletions

View File

@@ -386,9 +386,9 @@ If(WANT_GIG)
ENDIF(WANT_GIG)
# check for pthreads
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
FIND_PACKAGE(Threads)
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
# check for WINE
IF(WANT_VST)

View File

@@ -2,6 +2,8 @@ IF(WIN32)
SET(LMMS_BUILD_WIN32 1)
ELSEIF(APPLE)
SET(LMMS_BUILD_APPLE 1)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
SET(LMMS_BUILD_OPENBSD 1)
ELSEIF(HAIKU)
SET(LMMS_BUILD_HAIKU 1)
ELSE()

View File

@@ -34,7 +34,7 @@
#include <cmath>
using namespace std;
#if defined (LMMS_BUILD_WIN32) || defined (LMMS_BUILD_APPLE) || defined(LMMS_BUILD_HAIKU) || defined (__FreeBSD__)
#if defined (LMMS_BUILD_WIN32) || defined (LMMS_BUILD_APPLE) || defined(LMMS_BUILD_HAIKU) || defined (__FreeBSD__) || defined(__OpenBSD__)
#ifndef isnanf
#define isnanf(x) isnan(x)
#endif

View File

@@ -24,6 +24,10 @@
#define PLATFORM "OS X"
#endif
#ifdef LMMS_BUILD_OPENBSD
#define PLATFORM "OpenBSD"
#endif
#ifdef LMMS_BUILD_WIN32
#define PLATFORM "win32"
#endif

View File

@@ -15,7 +15,7 @@ SET_TARGET_PROPERTIES(calf PROPERTIES COMPILE_FLAGS "-O2 -finline-functions ${IN
IF(LMMS_BUILD_WIN32)
ADD_CUSTOM_COMMAND(TARGET calf POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:calf>")
ENDIF(LMMS_BUILD_WIN32)
IF(NOT LMMS_BUILD_APPLE)
IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)
SET_TARGET_PROPERTIES(calf PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined")
ENDIF(NOT LMMS_BUILD_APPLE)
ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)

View File

@@ -11,9 +11,9 @@ SET_TARGET_PROPERTIES(caps PROPERTIES COMPILE_FLAGS "-O2 -funroll-loops -Wno-wri
IF(LMMS_BUILD_WIN32)
ADD_CUSTOM_COMMAND(TARGET caps POST_BUILD COMMAND "${STRIP}" \"$<TARGET_FILE:caps>\")
ENDIF(LMMS_BUILD_WIN32)
IF(NOT LMMS_BUILD_APPLE)
IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)
SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined")
ENDIF(NOT LMMS_BUILD_APPLE)
ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)
IF(LMMS_BUILD_LINUX)
SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS}")

View File

@@ -12,7 +12,7 @@ ELSE(LMMS_BUILD_WIN32)
SET_TARGET_PROPERTIES(cmt PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC")
ENDIF(LMMS_BUILD_WIN32)
IF(NOT LMMS_BUILD_APPLE)
IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)
SET_TARGET_PROPERTIES(cmt PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined")
ENDIF(NOT LMMS_BUILD_APPLE)
ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)

View File

@@ -21,7 +21,7 @@ FOREACH(_item ${PLUGIN_SOURCES})
ENDIF(LMMS_BUILD_WIN32)
IF(LMMS_BUILD_APPLE)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Bsymbolic -lm")
ELSE(LMMS_BUILD_APPLE)
ELSEIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm")
ENDIF(LMMS_BUILD_APPLE)
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_HAIKU)

View File

@@ -11,7 +11,7 @@ FOREACH(_item ${PLUGIN_SOURCES})
ENDIF(LMMS_BUILD_WIN32)
IF(LMMS_BUILD_APPLE)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Bsymbolic -lm")
ELSE(LMMS_BUILD_APPLE)
ELSEIF(NOT LMMS_BUILD_OPENBSD)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm")
ENDIF(LMMS_BUILD_APPLE)
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_HAIKU)

View File

@@ -2,11 +2,13 @@ INCLUDE(BuildPlugin)
# definitions for ZynAddSubFX
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
FIND_PACKAGE(X11)
INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR})
ADD_DEFINITIONS(-DOS_LINUX)
ELSE(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
ELSE()
ADD_DEFINITIONS(-DOS_WINDOWS)
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
ENDIF()
# do not conflict with LMMS' Controller class
ADD_DEFINITIONS(-DController=ZynController)

View File

@@ -104,7 +104,9 @@ inline void sprng(prng_t p)
/*
* The random generator (0.0f..1.0f)
*/
#ifndef INT32_MAX
# define INT32_MAX (2147483647)
#endif
#define RND (prng() / (INT32_MAX * 1.0f))
//Linear Interpolation

View File

@@ -106,6 +106,10 @@ IF(LMMS_BUILD_APPLE)
SET(EXTRA_LIBRARIES "-framework CoreMIDI")
ENDIF()
if(LMMS_HAVE_OSS AND LMMS_BUILD_OPENBSD)
SET(EXTRA_LIBRARIES "-lossaudio")
endif()
SET(LMMS_REQUIRED_LIBS
${CMAKE_THREAD_LIBS_INIT}
${QT_LIBRARIES}

View File

@@ -2,6 +2,7 @@
#cmakedefine LMMS_BUILD_WIN32
#cmakedefine LMMS_BUILD_WIN64
#cmakedefine LMMS_BUILD_APPLE
#cmakedefine LMMS_BUILD_OPENBSD
#cmakedefine LMMS_BUILD_HAIKU
#cmakedefine LMMS_HOST_X86