diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bedf8bc..4d0a07b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,6 +25,9 @@ add_definitions( -DSIM_VERTICALSYNC ) if( UNIX ) add_definitions( -D_LINUX_ ) + if( APPLE ) + add_definitions( -D_APPLE_ ) + endif() elseif( WIN32 ) add_definitions( -DWIN32 ) add_definitions( -D_WINDOWS ) @@ -61,7 +64,13 @@ if( WIN32 ) endif() if( UNIX ) - find_package( Qt5 COMPONENTS Core Widgets OpenGL Svg X11Extras Xml REQUIRED ) + set( qt5_components Core Widgets OpenGL Svg Xml ) + if( NOT( APPLE ) ) + set( qt5_components ${qt5_components} X11Extras ) + endif() + + find_package( Qt5 COMPONENTS ${qt5_components} REQUIRED ) + unset( qt5_components ) endif() ################################################################################ @@ -173,10 +182,7 @@ endif() ################################################################################ -target_link_libraries( ${PROJECT_NAME} - - -Wl,--start-group - +set( LOCAL_LIBS cgi fdm fdm_aw101 @@ -193,8 +199,22 @@ target_link_libraries( ${PROJECT_NAME} hid nav sfx +) - ${LIBS} +if( APPLE ) + target_link_libraries( ${PROJECT_NAME} + ${LOCAL_LIBS} - -Wl,--end-group -) + ${LIBS} + ) +else() + target_link_libraries( ${PROJECT_NAME} + -Wl,--start-group + + ${LOCAL_LIBS} + + ${LIBS} + + -Wl,--end-group + ) +endif() diff --git a/src/fdm/auto/fdm_Autopilot.cpp b/src/fdm/auto/fdm_Autopilot.cpp index 784b115..5e13bb2 100644 --- a/src/fdm/auto/fdm_Autopilot.cpp +++ b/src/fdm/auto/fdm_Autopilot.cpp @@ -20,6 +20,9 @@ * IN THE SOFTWARE. ******************************************************************************/ +#include +#include + #include #include diff --git a/src/fdm/fdm_Manager.cpp b/src/fdm/fdm_Manager.cpp index af0707e..46c5d87 100644 --- a/src/fdm/fdm_Manager.cpp +++ b/src/fdm/fdm_Manager.cpp @@ -22,6 +22,8 @@ #include +#include +#include #include #include diff --git a/src/fdm/fdm_Path.h b/src/fdm/fdm_Path.h index 53d8868..97c3f08 100644 --- a/src/fdm/fdm_Path.h +++ b/src/fdm/fdm_Path.h @@ -59,7 +59,9 @@ class FDMEXPORT Path return "../data/" + path; # else -# ifdef _LINUX_ +# if defined(_APPLE_) + return "mscsim-data/data/" + path; +# elif defined(_LINUX_) return "/usr/share/mscsim/data/" + path; # endif diff --git a/src/fdm/models/fdm_MainRotor.cpp b/src/fdm/models/fdm_MainRotor.cpp index 356cdf8..7deba05 100644 --- a/src/fdm/models/fdm_MainRotor.cpp +++ b/src/fdm/models/fdm_MainRotor.cpp @@ -20,6 +20,9 @@ * IN THE SOFTWARE. ******************************************************************************/ +#include +#include + #include #include diff --git a/src/fdm/models/fdm_TailRotor.cpp b/src/fdm/models/fdm_TailRotor.cpp index 2aa011d..02899a4 100644 --- a/src/fdm/models/fdm_TailRotor.cpp +++ b/src/fdm/models/fdm_TailRotor.cpp @@ -20,6 +20,9 @@ * IN THE SOFTWARE. ******************************************************************************/ +#include +#include + #include #include diff --git a/src/fdm_c172/c172_KFC325_FD.cpp b/src/fdm_c172/c172_KFC325_FD.cpp index d1e51ca..7926f0f 100644 --- a/src/fdm_c172/c172_KFC325_FD.cpp +++ b/src/fdm_c172/c172_KFC325_FD.cpp @@ -20,6 +20,9 @@ * IN THE SOFTWARE. ******************************************************************************/ +#include +#include + #include #include diff --git a/src/g1000/g1000_Path.h b/src/g1000/g1000_Path.h index 7f580f4..959d66c 100644 --- a/src/g1000/g1000_Path.h +++ b/src/g1000/g1000_Path.h @@ -57,7 +57,9 @@ class Path return "../" + path; # else -# ifdef _LINUX_ +# if defined(_APPLE_) + return "mscsim-data/" + path; +# elif defined(_LINUX_) return "/usr/share/mscsim/" + path; # endif diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 84a55e0..36c9ad5 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -120,5 +120,11 @@ if( WIN32 ) endif() if( UNIX ) - qt5_use_modules( ${MODULE_NAME} Widgets OpenGL Svg X11Extras Xml ) + set( qt5_modules Widgets OpenGL Svg Xml) + if( NOT( APPLE ) ) + set( qt5_modules ${qt5_modules} X11Extras ) + endif() + + qt5_use_modules( ${MODULE_NAME} ${qt5_modules} ) + unset( qt5_modules ) endif() diff --git a/src/gui/ScreenSaver.cpp b/src/gui/ScreenSaver.cpp index a39a2d4..cd29c39 100644 --- a/src/gui/ScreenSaver.cpp +++ b/src/gui/ScreenSaver.cpp @@ -26,7 +26,7 @@ # include #endif -#ifdef _LINUX_ +#if defined(_LINUX_) && !defined(_APPLE_) # include # include # include @@ -40,7 +40,7 @@ void ScreenSaver::disable() SetThreadExecutionState( ES_CONTINUOUS | ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED ); # endif -# ifdef _LINUX_ +# if defined(_LINUX_) && !defined(_APPLE_) XScreenSaverSuspend( QX11Info::display(), True ); # endif } @@ -53,7 +53,7 @@ void ScreenSaver::enable() SetThreadExecutionState( ES_CONTINUOUS ); # endif -# ifdef _LINUX_ +# if defined(_LINUX_) && !defined(_APPLE_) XScreenSaverSuspend( QX11Info::display(), False ); # endif } @@ -62,7 +62,7 @@ void ScreenSaver::enable() void ScreenSaver::reset() { -# ifdef _LINUX_ +# if defined(_LINUX_) && !defined(_APPLE_) XResetScreenSaver( QX11Info::display() ); # endif } diff --git a/src/hid/hid_Joysticks.cpp b/src/hid/hid_Joysticks.cpp index 4e48a68..3eb8fd6 100644 --- a/src/hid/hid_Joysticks.cpp +++ b/src/hid/hid_Joysticks.cpp @@ -64,6 +64,7 @@ const std::string Joysticks::_axisNames[] = { "X", "Y", "Z", Joysticks::Joysticks() : _count ( 0 ) { +#ifndef _APPLE_ # ifdef HID_WINMM_JOYSTICK _buttons[ 0 ] = JOY_BUTTON1; _buttons[ 1 ] = JOY_BUTTON2; @@ -132,6 +133,7 @@ Joysticks::Joysticks() : _data[ i ].hasPOV = false; # endif } +#endif } //////////////////////////////////////////////////////////////////////////////// @@ -142,6 +144,7 @@ Joysticks::~Joysticks() {} void Joysticks::init() { +#ifndef _APPLE_ # ifdef HID_LINUX_JOYSTICK for ( int i = 0; i < HID_MAX_JOYS; i++ ) { @@ -382,12 +385,14 @@ void Joysticks::init() if ( joyIdTemp == JOYSTICKID1 ) joyIdTemp = JOYSTICKID2; } # endif +#endif } //////////////////////////////////////////////////////////////////////////////// void Joysticks::update() { +#ifndef _APPLE_ # ifdef HID_LINUX_JOYSTICK for( short i = 0; i < _count && i < HID_MAX_JOYS; i++ ) { @@ -515,12 +520,16 @@ void Joysticks::update() if ( joyIdTemp == JOYSTICKID1 ) joyIdTemp = JOYSTICKID2; } # endif +#endif } //////////////////////////////////////////////////////////////////////////////// Joysticks::Data Joysticks::getData( short joyNum ) const { +#ifdef _APPLE_ + return Joysticks::Data(); +#else if ( joyNum < 0 && joyNum >= HID_MAX_JOYS ) { Log::e() << "Wrong joystick index number." << std::endl; @@ -531,4 +540,5 @@ Joysticks::Data Joysticks::getData( short joyNum ) const } return _data[ joyNum ]; +#endif } diff --git a/src/hid/hid_Joysticks.h b/src/hid/hid_Joysticks.h index c030141..ab9d809 100644 --- a/src/hid/hid_Joysticks.h +++ b/src/hid/hid_Joysticks.h @@ -36,7 +36,7 @@ #include -#ifdef HID_LINUX_JOYSTICK +#if defined(HID_LINUX_JOYSTICK) && !defined(_APPLE_) # include # include # include @@ -193,7 +193,7 @@ class Joysticks : public Singleton< Joysticks > Joysticks::Data _data[ HID_MAX_JOYS ]; ///< joysticks data -# ifdef HID_LINUX_JOYSTICK +# if defined(HID_LINUX_JOYSTICK) && !defined(_APPLE_) int _fd[ HID_MAX_JOYS ]; ///< js_event _event; ///< joystick event # endif diff --git a/src/sfx/sfx_Manager.h b/src/sfx/sfx_Manager.h index 438c90b..39c000c 100644 --- a/src/sfx/sfx_Manager.h +++ b/src/sfx/sfx_Manager.h @@ -24,8 +24,13 @@ //////////////////////////////////////////////////////////////////////////////// -#include -#include +#ifdef _APPLE_ + #include + #include +#else + #include + #include +#endif #include #include diff --git a/src/sfx/sfx_Sample.cpp b/src/sfx/sfx_Sample.cpp index ae1cafb..3e29abd 100644 --- a/src/sfx/sfx_Sample.cpp +++ b/src/sfx/sfx_Sample.cpp @@ -203,31 +203,12 @@ bool Sample::checkForErrors() bool Sample::loadFile( const char *file ) { - bool error = false; - - // loading audio stream to buffer - ALenum format = 0; - ALsizei size = 0; - ALsizei freq = 0; - - ALvoid *data = NULLPTR; - ALboolean loop = AL_FALSE; - const size_t size_max = 4096; ALbyte file_temp[ size_max ]; size_t size_str = ( strlen( file ) < size_max ) ? ( strlen( file ) + 1 ) : size_max; memcpy( file_temp, file, size_str ); - alutLoadWAVFile( file_temp, &format, &data, &size, &freq, &loop ); - - error = checkForErrors(); - - // loading the raw audio stream into our buffer: - if ( !error ) - { - alBufferData( _buffer, format, data, size, freq ); - error = checkForErrors(); - } + _buffer = alutCreateBufferFromFile( file_temp ); - return error; + return checkForErrors(); } diff --git a/src/sfx/sfx_Sample.h b/src/sfx/sfx_Sample.h index 19e6cf5..a809bca 100644 --- a/src/sfx/sfx_Sample.h +++ b/src/sfx/sfx_Sample.h @@ -26,8 +26,13 @@ #include -#include -#include +#ifdef _APPLE_ + #include + #include +#else + #include + #include +#endif ////////////////////////////////////////////////////////////////////////////////