diff --git a/CMakeLists.txt b/CMakeLists.txt index 0543af4ca..6eb576a9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1168,20 +1168,13 @@ if (WIN32) target_link_libraries(c4script ws2_32 winmm) if(NOT USE_OPEN_AL) - if(MSVC_VERSION) - if(CMAKE_CL_64) - FINDLIB(FMOD_LIBRARIES fmod64vc) - else() - FINDLIB(FMOD_LIBRARIES fmodvc) - endif() - elseif(CMAKE_COMPILER_IS_GNUCXX) - FINDLIB(FMOD_LIBRARIES fmod) - endif() - if(FMOD_LIBRARIES) + find_package(FMod) + if(FMOD_FOUND) set(HAVE_FMOD TRUE) target_link_libraries(clonk ${FMOD_LIBRARIES} ) + include_directories(${FMOD_INCLUDE_DIR}) else() set(HAVE_FMOD FALSE) endif() diff --git a/cmake/FindFMod.cmake b/cmake/FindFMod.cmake new file mode 100644 index 000000000..209f97648 --- /dev/null +++ b/cmake/FindFMod.cmake @@ -0,0 +1,46 @@ +# - Find FMod +# Find the FMod library +# This module defines +# FMOD_INCLUDE_DIR, where to find fmod.h, etc. +# FMOD_LIBRARIES, the libraries needed to use FMod. +# FMOD_FOUND, If false, do not try to use FMod. + +#============================================================================= +# OpenClonk, http://www.openclonk.org +# +# Copyright (c) 2011 Nicolas Hake +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# See isc_license.txt for full license and disclaimer. +# +# "Clonk" is a registered trademark of Matthes Bender. +# See clonk_trademark_license.txt for full license. +#============================================================================= + +find_path(FMOD_INCLUDE_DIR fmod.h) + +if(CMAKE_CL_64) + if(MSVC) + set(FMOD_NAMES ${FMOD_NAMES} fmod64vc) + else() + set(FMOD_NAMES ${FMOD_NAMES} fmod64) + endif() +else() + if(MSVC) + set(FMOD_NAMES ${FMOD_NAMES} fmodvc) + else() + set(FMOD_NAMES ${FMOD_NAMES} fmod) + endif() +endif() +find_library(FMOD_LIBRARY NAMES ${FMOD_NAMES}) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(FMOD DEFAULT_MSG FMOD_LIBRARY FMOD_INCLUDE_DIR) + +if(FMOD_FOUND) + set(FMOD_LIBRARIES ${FMOD_LIBRARY}) +endif() + +mark_as_advanced(FMOD_LIBRARY FMOD_INCLUDE_DIR)