Merge pull request #170 from FluidSynth/cmake_pthreads

fix build
This commit is contained in:
Tom M 2017-07-02 09:58:34 +02:00 committed by GitHub
commit f0a83e13e3
3 changed files with 6 additions and 102 deletions

View file

@ -169,9 +169,9 @@ if ( WIN32 )
endif ( MINGW )
else ( WIN32 )
# Check PThreads, but not in Windows
find_package ( Pthreads REQUIRED )
set ( HAVE_LIBPTHREAD ${PTHREADS_FOUND} )
set ( LIBFLUID_LIBS "m" )
find_package ( Threads REQUIRED )
set ( HAVE_LIBPTHREAD ${Threads_FOUND} )
set ( LIBFLUID_LIBS "m" ${CMAKE_THREAD_LIBS_INIT} )
endif ( WIN32 )
# IBM OS/2

View file

@ -1,96 +0,0 @@
# - Find the Pthreads library
# This module searches for the Pthreads library (including the
# pthreads-win32 port).
#
# This module defines these variables:
#
# PTHREADS_FOUND
# True if the Pthreads library was found
# PTHREADS_LIBRARY
# The location of the Pthreads library
# PTHREADS_INCLUDE_DIR
# The include directory of the Pthreads library
# PTHREADS_DEFINITIONS
# Preprocessor definitions to define (HAVE_PTHREAD_H is a fairly common
# one)
#
# This module responds to the PTHREADS_EXCEPTION_SCHEME
# variable on Win32 to allow the user to control the
# library linked against. The Pthreads-win32 port
# provides the ability to link against a version of the
# library with exception handling. IT IS NOT RECOMMENDED
# THAT YOU CHANGE PTHREADS_EXCEPTION_SCHEME TO ANYTHING OTHER THAN
# "C" because most POSIX thread implementations do not support stack
# unwinding.
#
# PTHREADS_EXCEPTION_SCHEME
# C = no exceptions (default)
# (NOTE: This is the default scheme on most POSIX thread
# implementations and what you should probably be using)
# CE = C++ Exception Handling
# SE = Structure Exception Handling (MSVC only)
#
#
# Define a default exception scheme to link against
# and validate user choice.
#
IF(NOT DEFINED PTHREADS_EXCEPTION_SCHEME)
# Assign default if needed
SET(PTHREADS_EXCEPTION_SCHEME "C")
ELSE(NOT DEFINED PTHREADS_EXCEPTION_SCHEME)
# Validate
IF(NOT PTHREADS_EXCEPTION_SCHEME STREQUAL "C" AND
NOT PTHREADS_EXCEPTION_SCHEME STREQUAL "CE" AND
NOT PTHREADS_EXCEPTION_SCHEME STREQUAL "SE")
MESSAGE(FATAL_ERROR "See documentation for FindPthreads.cmake, only C, CE, and SE modes are allowed")
ENDIF(NOT PTHREADS_EXCEPTION_SCHEME STREQUAL "C" AND
NOT PTHREADS_EXCEPTION_SCHEME STREQUAL "CE" AND
NOT PTHREADS_EXCEPTION_SCHEME STREQUAL "SE")
IF(NOT MSVC AND PTHREADS_EXCEPTION_SCHEME STREQUAL "SE")
MESSAGE(FATAL_ERROR "Structured Exception Handling is only allowed for MSVC")
ENDIF(NOT MSVC AND PTHREADS_EXCEPTION_SCHEME STREQUAL "SE")
ENDIF(NOT DEFINED PTHREADS_EXCEPTION_SCHEME)
#
# Find the header file
#
FIND_PATH(PTHREADS_INCLUDE_DIR pthread.h)
#
# Find the library
#
SET(names)
IF(MSVC)
SET(names
pthreadV${PTHREADS_EXCEPTION_SCHEME}2
pthread
)
ELSEIF(MINGW)
SET(names
pthreadG${PTHREADS_EXCEPTION_SCHEME}2
pthread
)
ELSE(MSVC) # Unix / Cygwin / Apple / Etc.
SET(names pthread)
ENDIF(MSVC)
FIND_LIBRARY(PTHREADS_LIBRARY ${names}
DOC "The Portable Threads Library")
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pthreads DEFAULT_MSG
PTHREADS_LIBRARY PTHREADS_INCLUDE_DIR)
IF(PTHREADS_INCLUDE_DIR AND PTHREADS_LIBRARY)
SET(PTHREADS_DEFINITIONS -DHAVE_PTHREAD_H)
SET(PTHREADS_INCLUDE_DIRS ${PTHREADS_INCLUDE_DIR})
SET(PTHREADS_LIBRARIES ${PTHREADS_LIBRARY})
ENDIF(PTHREADS_INCLUDE_DIR AND PTHREADS_LIBRARY)
MARK_AS_ADVANCED(PTHREADS_INCLUDE_DIR)
MARK_AS_ADVANCED(PTHREADS_LIBRARY)

View file

@ -46,8 +46,8 @@ extern cca_client_t * fluid_lash_client;
#endif
fluid_lash_args_t *fluid_lash_extract_args (int * pargc, char *** pargv);
int fluid_lash_connect (fluid_lash_args_t * args);
void fluid_lash_create_thread (fluid_synth_t * synth);
FLUIDSYNTH_API fluid_lash_args_t *fluid_lash_extract_args (int * pargc, char *** pargv);
FLUIDSYNTH_API int fluid_lash_connect (fluid_lash_args_t * args);
FLUIDSYNTH_API void fluid_lash_create_thread (fluid_synth_t * synth);
#endif /* defined(HAVE_LASH) || defined(HAVE_LADCCA) */