Skip to content

Commit

Permalink
Started port to OSX. Fixed up cmake and OSX classes
Browse files Browse the repository at this point in the history
  • Loading branch information
David St-Louis authored and David St-Louis committed Mar 29, 2017
1 parent 8e146f6 commit d35de3d
Show file tree
Hide file tree
Showing 53 changed files with 2,114 additions and 182 deletions.
143 changes: 102 additions & 41 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib/linux)
# Output directories
if (UNIX AND NOT APPLE)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/linux)
elseif (APPLE)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/osx)
elseif (WIN32)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/win)
endif()

project(onut)

Expand All @@ -11,28 +18,66 @@ if (NOT ONUT_SHOW_FPS)
set(ONUT_SHOW_FPS 1)
endif()

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# Some compiler flags
if (UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmax-errors=3")
endif()

# Pre processors
if (CMAKE_BUILD_TYPE MATCHES Debug)
add_definitions(-D_DEBUG)
endif()
if (ONUT_SHOW_FPS EQUAL 1)
add_definitions(-DONUT_SHOW_FPS)
endif()
add_definitions(-DHAVE_LIBOPENMAX=2)
add_definitions(-DOMX)
add_definitions(-DOMX_SKIP64BIT)
add_definitions(-DUSE_EXTERNAL_OMX)
add_definitions(-DUSE_VCHIQ_ARM)
if (RPI)
add_definitions(-DHAVE_LIBOPENMAX=2)
add_definitions(-DOMX)
add_definitions(-DOMX_SKIP64BIT)
add_definitions(-DUSE_EXTERNAL_OMX)
add_definitions(-DUSE_VCHIQ_ARM)
endif()

# Add RaspberryPI specific source files
if (RPI)
list(APPEND src_files
src/AudioEngineLinux.cpp
src/audioplay/audioplay.c
src/GamePadLinux.cpp
src/InputDeviceLinux.cpp
src/VideoPlayerLinux.cpp
src/IndexBufferGLES2.cpp
src/RendererGLES2.cpp
src/ShaderGLES2.cpp
src/TextureGLES2.cpp
src/VertexBufferGLES2.cpp
src/WindowX11.cpp
)
endif()

# Add OSX specific source files
if (APPLE)
list(APPEND src_files
src/AudioEngineCoreAudio.cpp
src/GamePadOSX.cpp
src/InputDeviceOSX.cpp
src/VideoPlayerOSX.cpp
src/IndexBufferGL.cpp
src/RendererGL.cpp
src/ShaderGL.cpp
src/TextureGL.cpp
src/VertexBufferGL.cpp
src/WindowOSX.cpp
)
endif()

add_library(onut STATIC
# Add common source files
list(APPEND src_files
src/ActionManager.cpp
src/AudioEngine.cpp
src/AudioEngineLinux.cpp
src/audioplay/audioplay.c
src/Box2D/Collision/Shapes/b2ChainShape.cpp
src/Box2D/Collision/Shapes/b2CircleShape.cpp
src/Box2D/Collision/Shapes/b2EdgeShape.cpp
Expand Down Expand Up @@ -96,14 +141,11 @@ add_library(onut STATIC
src/Files.cpp
src/Font.cpp
src/GamePad.cpp
src/GamePadLinux.cpp
src/Http.cpp
src/Images.cpp
src/IndexBuffer.cpp
src/IndexBufferGLES2.cpp
src/Input.cpp
src/InputDevice.cpp
src/InputDeviceLinux.cpp
src/JSBindings.cpp
src/json/json_reader.cpp
src/json/json_value.cpp
Expand All @@ -113,6 +155,7 @@ add_library(onut STATIC
src/Maths.cpp
src/Matrix.cpp
src/micropather.cpp
src/Multiplayer.cpp
src/Music.cpp
src/onut.cpp
src/Particle.cpp
Expand All @@ -126,12 +169,10 @@ add_library(onut STATIC
src/Random.cpp
src/Ray.cpp
src/Renderer.cpp
src/RendererGLES2.cpp
src/Resource.cpp
src/SceneManager.cpp
src/Settings.cpp
src/Shader.cpp
src/ShaderGLES2.cpp
src/SocketTCP.cpp
src/SocketTCP_Unix.cpp
src/Sound.cpp
Expand All @@ -143,7 +184,6 @@ add_library(onut STATIC
src/Strings.cpp
src/TextComponent.cpp
src/Texture.cpp
src/TextureGLES2.cpp
src/ThreadPool.cpp
src/TiledMap.cpp
src/TiledMapComponent.cpp
Expand All @@ -167,11 +207,8 @@ add_library(onut STATIC
src/Vector3.cpp
src/Vector4.cpp
src/VertexBuffer.cpp
src/VertexBufferGLES2.cpp
src/VideoPlayer.cpp
src/VideoPlayerLinux.cpp
src/Window.cpp
src/WindowX11.cpp
src/zlib/adler32.c
src/zlib/compress.c
src/zlib/crc32.c
Expand All @@ -187,35 +224,57 @@ add_library(onut STATIC
src/zlib/trees.c
src/zlib/uncompr.c
src/zlib/zutil.c
)
)

add_library(onut STATIC ${src_files})

target_include_directories(onut
# Libraries
if (RPI)
list(APPEND includes
PUBLIC
/opt/vc/include
/opt/vc/include/interface/vmcs_host/linux
)
endif()
list(APPEND includes
PUBLIC
/opt/vc/include
/opt/vc/include/interface/vcos/pthreads
/opt/vc/include/interface/vmcs_host/linux
./include
PRIVATE
./src
)

target_link_libraries(onut
PUBLIC
-L/opt/vc/lib/
-L${CMAKE_SOURCE_DIR}/lib/linux/
-lbcm_host
-lvcos
-lvchiq_arm
-lEGL
-lGLESv2
-lEGL
-lGLESv2
-lpthread
-lrt
-ldl
-lilclient
-lopenmaxil
)
if (UNIX AND NOT APPLE) # Only required on linux if we use std::thread
find_package(Threads)
list(APPEND libs PUBLIC ${CMAKE_THREAD_LIBS_INIT})
endif()
if (UNIX AND NOT RPI)
find_package(OpenGL REQUIRED)
list(APPEND includes PUBLIC ${OPENGL_INCLUDE_DIR})
list(APPEND libs PUBLIC ${OPENGL_LIBRARIES})
endif()

if (RPI)
list(APPEND libs
PUBLIC
-L/opt/vc/lib/
-L${CMAKE_SOURCE_DIR}/lib/linux/
-lbcm_host
-lvcos
-lvchiq_arm
-lEGL
-lGLESv2
-lEGL
-lGLESv2
-lrt
-ldl
-lilclient
-lopenmaxil
)
endif()

# Include libs and includes
target_include_directories(onut ${includes})
target_link_libraries(onut ${libs})

add_subdirectory(JSStandAlone) # JSStandAlone

Expand All @@ -224,7 +283,9 @@ add_subdirectory(samples/Components) # ComponentsSample
add_subdirectory(samples/Crypto) # CryptoSample
add_subdirectory(samples/CustomMesh) # CustomMeshSample
add_subdirectory(samples/Dungeon) # DungeonSample
add_subdirectory(samples/Empty) # EmptySample
add_subdirectory(samples/Entities) # EntitiesSample
add_subdirectory(samples/Multiplayer) # MultiplayerSample
add_subdirectory(samples/Navigation) # NavigationSample
add_subdirectory(samples/Particles) # ParticlesSample
add_subdirectory(samples/Primitives) # PrimitivesSample
Expand Down
Binary file removed JSStandAlone/bin/linux/JSStandAlone
Binary file not shown.
12 changes: 10 additions & 2 deletions PILaunch/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(PILaunch)

if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmax-errors=3")
endif()

Expand Down
1 change: 1 addition & 0 deletions include/onut/Font.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

// STL
#include <unordered_map>
#include <vector>

// Forward
#include <onut/ForwardDeclaration.h>
Expand Down
2 changes: 1 addition & 1 deletion include/onut/Multiplayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ namespace onut
std::string m_modeId;

OSocketTCPRef m_pMatchMakingSocket;
std::atomic<bool> m_isMatchMaking = false;
std::atomic<bool> m_isMatchMaking;
ThreadRef m_pMatchMakingThread;
std::mutex m_matchMakingMutex;
};
Expand Down
8 changes: 7 additions & 1 deletion samples/Animations/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(AnimationsSample)

Expand Down
8 changes: 7 additions & 1 deletion samples/Components/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(ComponentsSample)

Expand Down
8 changes: 7 additions & 1 deletion samples/Crypto/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(CryptoSample)

Expand Down
8 changes: 7 additions & 1 deletion samples/CustomMesh/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(CustomMeshSample)

Expand Down
8 changes: 7 additions & 1 deletion samples/Dungeon/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(DungeonSample)

Expand Down
23 changes: 23 additions & 0 deletions samples/Empty/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(EmptySample)

include_directories(
./src
)

add_executable(EmptySample
src/EmptySample.cpp
)

target_link_libraries(EmptySample
onut
)
8 changes: 7 additions & 1 deletion samples/Entities/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
if (UNIX AND NOT APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/linux)
elseif (APPLE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/osx)
elseif (WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ./bin/win)
endif()

project(EntitiesSample)

Expand Down
Loading

0 comments on commit d35de3d

Please sign in to comment.