Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]Change cmake2 code to cmake3 #362

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ scripts/soloud_codegen.py
glue/rpgmaker_soloud.rb
*.lastcodeanalysissucceeded
*.bak
CMakeLists.txt.user
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ Danny Angelo Carminati Grein https://github.com/fungos
Igor Ivanov https://github.com/laptabrok
Matthew O'Connell https://github.com/matthew-oconnell
Boris Carvajal https://github.com/BorisCarvajal
Bradley Clemetson https://github.com/bradc6
72 changes: 52 additions & 20 deletions contrib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,32 +1,64 @@
cmake_minimum_required (VERSION 2.8)
cmake_minimum_required (VERSION 3.0)
project(SoLoud)

project (SoLoud)
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}")
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
#INCLUDE (StandartIncludes)
include(OptionDependentOnPackage)
include(PrintOptionStatus)

include_directories (../include)
option(SOLOUD_DYNAMIC "Set to ON to build dynamic SoLoud" OFF)
print_option_status (SOLOUD_DYNAMIC "Build dynamic library")

include (Configure.cmake)
#INCLUDE (InstallIncludes.cmake)
#INCLUDE (InstallStaticData.cmake)
option(SOLOUD_STATIC "Set to ON to build static SoLoud" ON)
print_option_status (SOLOUD_STATIC "Build static library")

if (UNIX AND NOT WIN32 AND NOT APPLE)
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
set (LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement")
mark_as_advanced (LIB_POSTFIX)
endif ()
endif ()
if (NOT DEFINED LIB_POSTFIX)
set (LIB_POSTFIX "")
endif ()
option(SOLOUD_BUILD_DEMOS "Set to ON for building demos" OFF)
option(SOLOUD_ENABLE_BACKEND_NULL "Set to ON for building NULL backend" ON)
option(SOLOUD_ENABLE_BACKEND_SDL2 "Set to ON for building SDL2 backend" OFF)
option(SOLOUD_ENABLE_BACKEND_ALSA "Set to ON for building the ALSA backend" OFF)
option(SOLOUD_ENABLE_BACKEND_COREAUDIO "Set to ON for building CoreAudio backend" OFF)
option(SOLOUD_ENABLE_BACKEND_OPENSLES "Set to ON for building OpenSLES backend" OFF)
option(SOLOUD_ENABLE_BACKEND_XAUDIO2 "Set to ON for building XAudio2 backend" OFF)
option(SOLOUD_ENABLE_BACKEND_WINMM "Set to ON for building WINMM backend" OFF)
option(SOLOUD_ENABLE_BACKEND_WASAPI "Set to ON for building WASAPI backend" OFF)
option(SOLOUD_AUTO_DETECT_BACKENDS "Attempt to enable backends based on what is available" ON)

if(SOLOUD_AUTO_DETECT_BACKENDS)
find_package(SDL2)
set(SOLOUD_ENABLE_BACKEND_SDL2 ${SDL2_FOUND})
find_package(ALSA)
set(SOLOUD_ENABLE_BACKEND_ALSA ${ALSA_FOUND})

if(APPLE)
set(SOLOUD_BACKEND_COREAUDIO ON)
endif()

find_package(OpenSLES)
set(SOLOUD_ENABLE_BACKEND_OPENSLES ${OPENSLES_FOUND})
endif()

if(SOLOUD_BUILD_DEMOS)
set(SOLOUD_STATIC ON)
endif()

print_option_status (SOLOUD_BUILD_DEMOS "Build demos")
print_option_status (SOLOUD_AUTO_DETECT_BACKENDS "Auto Detect Backends")
print_option_status (SOLOUD_ENABLE_BACKEND_NULL "NULL backend")
print_option_status (SOLOUD_BACKEND_SDL2 "SDL2 backend")
print_option_status (SOLOUD_ENABLE_BACKEND_ALSA "ALSA backend")
print_option_status (SOLOUD_BACKEND_COREAUDIO "CoreAudio backend")
print_option_status (SOLOUD_BACKEND_OPENSLES "OpenSLES backend")
print_option_status (SOLOUD_BACKEND_XAUDIO2 "XAudio2 backend")
print_option_status (SOLOUD_BACKEND_WINMM "WINMM backend")
print_option_status (SOLOUD_BACKEND_WASAPI "WASAPI backend")

#Establish some basic mappings to filesystem directories
get_filename_component(SOLOUD_ROOT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)

include (src.cmake)

# Demos
IF (SOLOUD_BUILD_DEMOS)
if(SOLOUD_BUILD_DEMOS)
include (demos.cmake)
endif ()

include (InstallExport)
33 changes: 0 additions & 33 deletions contrib/Configure.cmake

This file was deleted.

28 changes: 28 additions & 0 deletions contrib/cmake/FindOpenSLES.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# - Find OpenSLES
# Find the OpenSLES includes and libraries
#
# OPENSLES_INCLUDE_DIR - where to find dsound.h
# OPENSLES_LIBRARIES - List of libraries when using dsound.
# OPENSLES_FOUND - True if dsound found.

get_property(_FIND_LIBRARY_USE_LIB64_PATHS GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS 1)

find_path(OpenSLES_INCLUDE_DIR SLES/OpenSLES.h)
find_library(OpenSLES_LIBRARY NAMES OpenSLES)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OpenSLES DEFAULT_MSG OpenSLES_INCLUDE_DIR OpenSLES_LIBRARY)

if(OpenSLES_FOUND)
set(OpenSLES_INCLUDE_DIRS ${OPENSLES_INCLUDE_DIR})
set(OpenSLES_LIBRARIES ${OPENSLES_LIBRARY})
else(OpenSLES_FOUND)
if (OpenSLES_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find OPENSLES")
endif()
endif(OpenSLES_FOUND)

mark_as_advanced(OpenSLES_INCLUDE_DIR OpenSLES_LIBRARY)

set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ${_FIND_LIBRARY_USE_LIB64_PATHS})
22 changes: 0 additions & 22 deletions contrib/cmake/Install.cmake

This file was deleted.

38 changes: 0 additions & 38 deletions contrib/cmake/InstallExport.cmake

This file was deleted.

142 changes: 104 additions & 38 deletions contrib/demos.cmake
Original file line number Diff line number Diff line change
@@ -1,38 +1,104 @@
set (HEADER_PATH ../include)
set (SOURCE_PATH ../demos)

function (soloud_add_demo name sources)
set (TARGET_NAME SoLoud_${name})
add_executable (${TARGET_NAME} ${sources})
target_link_libraries (${TARGET_NAME} soloud)
include (Install)
endfunction()

include_directories (${SOURCE_PATH}/common)
include_directories (${SOURCE_PATH}/common/imgui)


# soloud_add_demo(c_test ${SOURCE_PATH}/c_test/main.c)
soloud_add_demo(enumerate ${SOURCE_PATH}/enumerate/main.cpp)
# soloud_add_demo(env ${SOURCE_PATH}/env/main.cpp)
# soloud_add_demo(megademo
# ${SOURCE_PATH}/megademo/3dtest.cpp
# ${SOURCE_PATH}/megademo/main.cpp
# ${SOURCE_PATH}/megademo/mixbusses.cpp
# ${SOURCE_PATH}/megademo/monotone.cpp
# ${SOURCE_PATH}/megademo/multimusic.cpp
# ${SOURCE_PATH}/megademo/pewpew.cpp
# ${SOURCE_PATH}/megademo/radiogaga.cpp
# ${SOURCE_PATH}/megademo/space.cpp
# ${SOURCE_PATH}/megademo/speechfilter.cpp
# ${SOURCE_PATH}/megademo/tedsid.cpp
# ${SOURCE_PATH}/megademo/virtualvoices.cpp
# )
soloud_add_demo(null ${SOURCE_PATH}/null/main.cpp)
# soloud_add_demo(piano
# ${SOURCE_PATH}/piano/main.cpp
# ${SOURCE_PATH}/piano/soloud_basicwave.cpp
# ${SOURCE_PATH}/piano/soloud_padsynth.cpp
# )
soloud_add_demo(simplest ${SOURCE_PATH}/simplest/main.cpp)
soloud_add_demo(welcome ${SOURCE_PATH}/welcome/main.cpp)
set(SOLOUD_DEMO_DIRECTORY ${SOLOUD_ROOT_DIRECTORY}/demos)


##############################
#Backing libraries for Demo
##############################
set(SOLOUD_DEMO_COMMON ${SOLOUD_DEMO_DIRECTORY}/common)

set(OpenGL_GL_PREFERENCE "GLVND")
find_package(OpenGL)

set(SOLOUD_DEMO_GLEW_DIR ${SOLOUD_DEMO_COMMON}/glew/GL)
set(SOLOUD_DEMO_GLEW_SOURCES
${SOLOUD_DEMO_GLEW_DIR}/glew.c
${SOLOUD_DEMO_GLEW_DIR}/glew.h
${SOLOUD_DEMO_GLEW_DIR}/glxew.h
${SOLOUD_DEMO_GLEW_DIR}/wglew.h
)
add_library(soloud-demo-glew STATIC ${SOLOUD_DEMO_GLEW_SOURCES})
target_include_directories(soloud-demo-glew PUBLIC ${SOLOUD_DEMO_COMMON}/glew)

set(SOLOUD_DEMO_IMGUI_DIR ${SOLOUD_DEMO_COMMON}/imgui)
set(SOLOUD_IMGUI_SOURCES
${SOLOUD_DEMO_IMGUI_DIR}/imconfig.h
${SOLOUD_DEMO_IMGUI_DIR}/imgui.cpp
${SOLOUD_DEMO_IMGUI_DIR}/imgui_demo.cpp
${SOLOUD_DEMO_IMGUI_DIR}/imgui_draw.cpp
${SOLOUD_DEMO_IMGUI_DIR}/imgui.h
${SOLOUD_DEMO_IMGUI_DIR}/imgui_internal.h
${SOLOUD_DEMO_IMGUI_DIR}/stb_rect_pack.h
${SOLOUD_DEMO_IMGUI_DIR}/stb_textedit.h
${SOLOUD_DEMO_IMGUI_DIR}/stb_truetype.h
)
add_library(soloud-imgui STATIC ${SOLOUD_IMGUI_SOURCES})
target_include_directories(soloud-imgui PUBLIC ${SOLOUD_DEMO_COMMON}/imgui)


set(SOLOUD_DEMO_FRAMEWORK_SOURCES
${SOLOUD_DEMO_COMMON}/soloud_demo_framework.cpp
${SOLOUD_DEMO_COMMON}/soloud_demo_framework.h
${SOLOUD_DEMO_COMMON}/stb_image.h
)
add_library(soloud-demo-framework STATIC ${SOLOUD_DEMO_FRAMEWORK_SOURCES})
target_include_directories(soloud-demo-framework PUBLIC ${SOLOUD_DEMO_COMMON})
target_link_libraries(soloud-demo-framework PUBLIC soloud-imgui soloud-demo-glew OpenGL::GL)

##############################
#Demos
##############################

#Simplest
add_executable(simplest ${SOLOUD_DEMO_DIRECTORY}/simplest/main.cpp)
target_link_libraries(simplest PUBLIC soloud)

#C API test
add_executable(ctest ${SOLOUD_DEMO_DIRECTORY}/c_test/main.c)
target_link_libraries(ctest PUBLIC soloud)

#Welcome
add_executable(welcome ${SOLOUD_DEMO_DIRECTORY}/welcome/main.cpp)
target_link_libraries(welcome PUBLIC soloud)

#env
add_executable(env ${SOLOUD_DEMO_DIRECTORY}/env/main.cpp)
target_link_libraries(env PUBLIC soloud soloud-demo-framework)

#null
add_executable(null ${SOLOUD_DEMO_DIRECTORY}/null/main.cpp)
target_link_libraries(null PUBLIC soloud)

#piana
set(SOLOUD_DEMO_PIANO_SOURCE_DIR ${SOLOUD_DEMO_DIRECTORY}/piano)
set(SOLOUD_DEMO_PIANO_SOURCES
${SOLOUD_DEMO_PIANO_SOURCE_DIR}/main.cpp
${SOLOUD_DEMO_PIANO_SOURCE_DIR}/RtMidi.cpp
${SOLOUD_DEMO_PIANO_SOURCE_DIR}/RtMidi.h
${SOLOUD_DEMO_PIANO_SOURCE_DIR}/soloud_basicwave.cpp
${SOLOUD_DEMO_PIANO_SOURCE_DIR}/soloud_basicwave.h
${SOLOUD_DEMO_PIANO_SOURCE_DIR}/soloud_padsynth.cpp
${SOLOUD_DEMO_PIANO_SOURCE_DIR}/soloud_padsynth.h
)
add_executable(piano ${SOLOUD_DEMO_PIANO_SOURCES})
target_link_libraries(piano PUBLIC soloud soloud-demo-framework)

#MegaDemo
set(SOLOUD_DEMO_MEGADEMO_SOURCE_DIR ${SOLOUD_DEMO_DIRECTORY}/megademo)
set(SOLOUD_DEMO_MEGADEMO_SOURCES
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/3dtest.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/main.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/mixbusses.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/monotone.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/multimusic.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/pewpew.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/radiogaga.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/space.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/speechfilter.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/tedsid.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/virtualvoices.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/wavformats.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/speakers.cpp
${SOLOUD_DEMO_MEGADEMO_SOURCE_DIR}/thebutton.cpp
)
add_executable(megademo ${SOLOUD_DEMO_MEGADEMO_SOURCES})
target_link_libraries(megademo PUBLIC soloud soloud-demo-framework)
Loading