mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-16 22:16:53 +07:00
fix cmake bass linking
This commit is contained in:
@@ -1,6 +1,12 @@
|
|||||||
cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
|
||||||
project(enduro2d)
|
project(enduro2d)
|
||||||
|
|
||||||
|
set(E2D_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
||||||
|
set(E2D_ROOT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
message("E2D_SYSTEM_NAME: " ${E2D_SYSTEM_NAME})
|
||||||
|
message("E2D_ROOT_DIRECTORY: " ${E2D_ROOT_DIRECTORY})
|
||||||
|
|
||||||
#
|
#
|
||||||
# linking mode
|
# linking mode
|
||||||
#
|
#
|
||||||
@@ -107,6 +113,65 @@ set(glew-cmake_BUILD_MULTI_CONTEXT OFF CACHE BOOL "" FORCE)
|
|||||||
add_subdirectory(modules/glew)
|
add_subdirectory(modules/glew)
|
||||||
set_target_properties(libglew_static PROPERTIES FOLDER modules)
|
set_target_properties(libglew_static PROPERTIES FOLDER modules)
|
||||||
|
|
||||||
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUALS 4)
|
||||||
|
add_library(bass SHARED IMPORTED)
|
||||||
|
set_target_properties(bass PROPERTIES IMPORTED_LOCATION
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/linux/x86/bass.so)
|
||||||
|
elseif(CMAKE_SIZEOF_VOID_P EQUALS 8)
|
||||||
|
add_library(bass SHARED IMPORTED)
|
||||||
|
set_target_properties(bass PROPERTIES IMPORTED_LOCATION
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/linux/x64/bass.so)
|
||||||
|
endif()
|
||||||
|
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
||||||
|
add_library(bass SHARED IMPORTED)
|
||||||
|
set_target_properties(bass PROPERTIES IMPORTED_LOCATION
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/macosx/libbass.dylib)
|
||||||
|
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUALS 4)
|
||||||
|
add_library(bass SHARED IMPORTED)
|
||||||
|
set_target_properties(bass PROPERTIES IMPORTED_LOCATION
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/windows/x86/bass.lib)
|
||||||
|
elseif(CMAKE_SIZEOF_VOID_P EQUALS 8)
|
||||||
|
add_library(bass SHARED IMPORTED)
|
||||||
|
set_target_properties(bass PROPERTIES IMPORTED_LOCATION
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/windows/x64/bass.lib)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
function(add_e2d_shared_libraries_to_target TO)
|
||||||
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUALS 4)
|
||||||
|
add_custom_command(TARGET ${TO} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/linux/x86/libbass.so
|
||||||
|
$<TARGET_FILE_DIR:${TO}>)
|
||||||
|
elseif(CMAKE_SIZEOF_VOID_P EQUALS 8)
|
||||||
|
add_custom_command(TARGET ${TO} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/linux/x64/libbass.so
|
||||||
|
$<TARGET_FILE_DIR:${TO}>)
|
||||||
|
endif()
|
||||||
|
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
||||||
|
add_custom_command(TARGET ${TO} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/macosx/libbass.dylib
|
||||||
|
$<TARGET_FILE_DIR:${TO}>)
|
||||||
|
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUALS 4)
|
||||||
|
add_custom_command(TARGET ${TO} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/windows/x86/libbass.dll
|
||||||
|
$<TARGET_FILE_DIR:${TO}>)
|
||||||
|
elseif(CMAKE_SIZEOF_VOID_P EQUALS 8)
|
||||||
|
add_custom_command(TARGET ${TO} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${E2D_ROOT_DIRECTORY}/sources/3rdparty/bass/windows/x64/libbass.dll
|
||||||
|
$<TARGET_FILE_DIR:${TO}>)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endfunction(add_e2d_shared_libraries_to_target)
|
||||||
|
|
||||||
#
|
#
|
||||||
# e2d library target
|
# e2d library target
|
||||||
#
|
#
|
||||||
@@ -122,6 +187,7 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES
|
|||||||
${E2D_3RDPARTY})
|
${E2D_3RDPARTY})
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME}
|
target_link_libraries(${PROJECT_NAME}
|
||||||
|
PRIVATE bass
|
||||||
PRIVATE glfw
|
PRIVATE glfw
|
||||||
PRIVATE libglew_static
|
PRIVATE libglew_static
|
||||||
PRIVATE $<$<CXX_COMPILER_ID:MSVC>:winmm.lib>)
|
PRIVATE $<$<CXX_COMPILER_ID:MSVC>:winmm.lib>)
|
||||||
@@ -150,23 +216,6 @@ target_compile_definitions(${PROJECT_NAME}
|
|||||||
-D_CRT_SECURE_NO_WARNINGS
|
-D_CRT_SECURE_NO_WARNINGS
|
||||||
-D_SCL_SECURE_NO_WARNINGS>)
|
-D_SCL_SECURE_NO_WARNINGS>)
|
||||||
|
|
||||||
#
|
|
||||||
# bass
|
|
||||||
#
|
|
||||||
|
|
||||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "iOS")
|
|
||||||
link_directories( "sources/3rdparty/bass/ios" )
|
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC "bass")
|
|
||||||
endif()
|
|
||||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
|
||||||
link_directories( "sources/3rdparty/bass/mac" )
|
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC "bass.dylib")
|
|
||||||
add_custom_target(CopyBassLibs
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/sources/3rdparty/bass/mac/$<CONFIG>/libbass.dylib" "${CMAKE_BINARY_DIR}/lib/$<CONFIG>/libbass.dylib")
|
|
||||||
add_dependencies(${PROJECT_NAME} CopyBassLibs)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# subdirectories
|
# subdirectories
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ function(add_e2d_sample NAME)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/bin
|
${CMAKE_CURRENT_SOURCE_DIR}/bin
|
||||||
$<TARGET_FILE_DIR:${SAMPLE_NAME}>/bin)
|
$<TARGET_FILE_DIR:${SAMPLE_NAME}>/bin)
|
||||||
|
add_e2d_shared_libraries_to_target(${SAMPLE_NAME})
|
||||||
endfunction(add_e2d_sample)
|
endfunction(add_e2d_sample)
|
||||||
|
|
||||||
add_e2d_sample(00)
|
add_e2d_sample(00)
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ function(add_e2d_tests NAME)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/bin
|
${CMAKE_CURRENT_SOURCE_DIR}/bin
|
||||||
$<TARGET_FILE_DIR:${TESTS_NAME}>/bin)
|
$<TARGET_FILE_DIR:${TESTS_NAME}>/bin)
|
||||||
|
add_e2d_shared_libraries_to_target(${TESTS_NAME})
|
||||||
|
|
||||||
#
|
#
|
||||||
# tests
|
# tests
|
||||||
|
|||||||
Reference in New Issue
Block a user