瀏覽代碼

Improving build find module functions
Fixing glslang dependencies in Vulkan library build

BearishSun 9 年之前
父節點
當前提交
b82e9e33bb

+ 1 - 1
Source/BansheeFMOD/CMakeLists.txt

@@ -26,7 +26,7 @@ target_compile_definitions(BansheeFMOD PRIVATE -DBS_FMOD_EXPORTS)
 
 
 # Libraries
 # Libraries
 ## External libs: FMOD, Vorbis, Ogg
 ## External libs: FMOD, Vorbis, Ogg
-add_package_library(BansheeFMOD FMOD)
+target_link_libraries(BansheeFMOD PRIVATE ${FMOD_LIBRARIES})	
 
 
 add_library_per_config_multi(BansheeFMOD libvorbis libvorbis libvorbis libvorbis)
 add_library_per_config_multi(BansheeFMOD libvorbis libvorbis libvorbis libvorbis)
 add_library_per_config_multi(BansheeFMOD libvorbisfile libvorbis libvorbisfile libvorbisfile)
 add_library_per_config_multi(BansheeFMOD libvorbisfile libvorbis libvorbisfile libvorbisfile)

+ 5 - 2
Source/BansheeVulkanRenderAPI/CMakeLists.txt

@@ -26,10 +26,13 @@ include_directories(${BansheeVulkanRenderAPI_INC})
 # Target
 # Target
 add_library(BansheeVulkanRenderAPI SHARED ${BS_BANSHEEVULKANRENDERAPI_SRC})
 add_library(BansheeVulkanRenderAPI SHARED ${BS_BANSHEEVULKANRENDERAPI_SRC})
 
 
+# Defines
+target_compile_definitions(BansheeVulkanRenderAPI PRIVATE -DBS_VULKAN_EXPORTS)
+
 # Libraries	
 # Libraries	
 ## External libs: Vulkan, glslang
 ## External libs: Vulkan, glslang
-add_package_library(BansheeVulkanRenderAPI Vulkan)
-add_package_library(BansheeVulkanRenderAPI glslang)
+target_link_libraries(BansheeVulkanRenderAPI PRIVATE ${Vulkan_LIBRARIES})
+target_link_libraries(BansheeVulkanRenderAPI PRIVATE ${glslang_LIBRARIES})
 
 
 ## Local libs
 ## Local libs
 target_link_libraries(BansheeVulkanRenderAPI PRIVATE BansheeUtility BansheeCore)
 target_link_libraries(BansheeVulkanRenderAPI PRIVATE BansheeUtility BansheeCore)

+ 12 - 7
Source/CMake/Modules/FindFMOD.cmake

@@ -2,9 +2,7 @@
 #
 #
 # This module defines
 # This module defines
 #  FMOD_INCLUDE_DIRS
 #  FMOD_INCLUDE_DIRS
-#  FMOD_LIBRARIES_DEBUG
-#  FMOD_LIBRARIES_OPTIMIZED
-#  FMOD_LIBRARY_DIRS
+#  FMOD_LIBRARIES
 #  FMOD_FOUND
 #  FMOD_FOUND
 
 
 # TODO: Set default install paths for mac/unix
 # TODO: Set default install paths for mac/unix
@@ -17,10 +15,10 @@ find_path(FMOD_INCLUDE_DIR fmod.h PATHS ${FMOD_INCLUDE_SEARCH_DIRS})
 
 
 if(BS_64BIT)
 if(BS_64BIT)
 	find_library(FMOD_LIBRARY_OPTIMIZED NAMES fmod64_vc libfmod PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
 	find_library(FMOD_LIBRARY_OPTIMIZED NAMES fmod64_vc libfmod PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
-	find_library(FMOD_LIBRARY_DEBUG NAMES fmodL64_vc libfmodL PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
+	find_library(FMOD_LIBRARY_DEBUG NAMES fmodL64_vc libfmodL fmod64_vc libfmod PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
 else()
 else()
 	find_library(FMOD_LIBRARY_OPTIMIZED NAMES fmod_vc libfmod PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
 	find_library(FMOD_LIBRARY_OPTIMIZED NAMES fmod_vc libfmod PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
-	find_library(FMOD_LIBRARY_DEBUG NAMES fmodL_vc libfmodL PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
+	find_library(FMOD_LIBRARY_DEBUG NAMES fmodL_vc libfmodL fmod_vc libfmod PATHS ${FMOD_LIBRARY_SEARCH_DIRS})
 endif()
 endif()
 
 
 if(FMOD_INCLUDE_DIR AND FMOD_LIBRARY_OPTIMIZED AND FMOD_LIBRARY_DEBUG)
 if(FMOD_INCLUDE_DIR AND FMOD_LIBRARY_OPTIMIZED AND FMOD_LIBRARY_DEBUG)
@@ -30,6 +28,7 @@ endif()
 if(NOT FMOD_FOUND)
 if(NOT FMOD_FOUND)
 	if(FMOD_FIND_REQUIRED)
 	if(FMOD_FIND_REQUIRED)
 		message(FATAL_ERROR "Cannot find FMOD installation. Try modifying the FMOD_INSTALL_DIRS path.")
 		message(FATAL_ERROR "Cannot find FMOD installation. Try modifying the FMOD_INSTALL_DIRS path.")
+		return()
 	else()
 	else()
 		message(WARNING "Cannot find FMOD installation. Try modifying the FMOD_INSTALL_DIRS path.")
 		message(WARNING "Cannot find FMOD installation. Try modifying the FMOD_INSTALL_DIRS path.")
 	endif()
 	endif()
@@ -37,7 +36,13 @@ else()
 	message(STATUS "...FMOD OK.")
 	message(STATUS "...FMOD OK.")
 endif()
 endif()
 
 
+if(FMOD_FOUND)
+	add_library(FMOD STATIC IMPORTED)
+	set_target_properties(FMOD PROPERTIES IMPORTED_LOCATION_DEBUG "${FMOD_LIBRARY_DEBUG}")
+	set_target_properties(FMOD PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${FMOD_LIBRARY_DEBUG}")
+	set_target_properties(FMOD PROPERTIES IMPORTED_LOCATION_RELEASE "${FMOD_LIBRARY_OPTIMIZED}")
+endif()
+
 mark_as_advanced(FMOD_INSTALL_DIRS FMOD_INCLUDE_DIR FMOD_LIBRARY_OPTIMIZED FMOD_LIBRARY_DEBUG)
 mark_as_advanced(FMOD_INSTALL_DIRS FMOD_INCLUDE_DIR FMOD_LIBRARY_OPTIMIZED FMOD_LIBRARY_DEBUG)
 set(FMOD_INCLUDE_DIRS ${FMOD_INCLUDE_DIR})
 set(FMOD_INCLUDE_DIRS ${FMOD_INCLUDE_DIR})
-set(FMOD_LIBRARIES_OPTIMIZED ${FMOD_LIBRARY_OPTIMIZED})
-set(FMOD_LIBRARIES_DEBUG ${FMOD_LIBRARY_DEBUG})
+set(FMOD_LIBRARIES FMOD)

+ 9 - 5
Source/CMake/Modules/FindVulkan.cmake

@@ -2,9 +2,7 @@
 #
 #
 # This module defines
 # This module defines
 #  Vulkan_INCLUDE_DIRS
 #  Vulkan_INCLUDE_DIRS
-#  Vulkan_LIBRARIES_DEBUG
-#  Vulkan_LIBRARIES_OPTIMIZED
-#  Vulkan_LIBRARY_DIRS
+#  Vulkan_LIBRARIES
 #  Vulkan_FOUND
 #  Vulkan_FOUND
 
 
 # TODO: Set default install paths for mac/unix
 # TODO: Set default install paths for mac/unix
@@ -38,7 +36,13 @@ else()
 	message(STATUS "...Vulkan OK.")
 	message(STATUS "...Vulkan OK.")
 endif()
 endif()
 
 
+if(Vulkan_FOUND)
+	add_library(Vulkan STATIC IMPORTED)
+	set_target_properties(Vulkan PROPERTIES IMPORTED_LOCATION_DEBUG "${Vulkan_LIBRARY_DEBUG}")
+	set_target_properties(Vulkan PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${Vulkan_LIBRARY_DEBUG}")
+	set_target_properties(Vulkan PROPERTIES IMPORTED_LOCATION_RELEASE "${Vulkan_LIBRARY_OPTIMIZED}")	
+endif()
+
 mark_as_advanced(Vulkan_INSTALL_DIRS Vulkan_INCLUDE_DIR Vulkan_LIBRARY_OPTIMIZED Vulkan_LIBRARY_DEBUG)
 mark_as_advanced(Vulkan_INSTALL_DIRS Vulkan_INCLUDE_DIR Vulkan_LIBRARY_OPTIMIZED Vulkan_LIBRARY_DEBUG)
 set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
 set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
-set(Vulkan_LIBRARIES_OPTIMIZED ${Vulkan_LIBRARY_OPTIMIZED})
-set(Vulkan_LIBRARIES_DEBUG ${Vulkan_LIBRARY_DEBUG})
+set(Vulkan_LIBRARIES Vulkan)

+ 50 - 9
Source/CMake/Modules/Findglslang.cmake

@@ -2,9 +2,7 @@
 #
 #
 # This module defines
 # This module defines
 #  glslang_INCLUDE_DIRS
 #  glslang_INCLUDE_DIRS
-#  glslang_LIBRARIES_DEBUG
-#  glslang_LIBRARIES_OPTIMIZED
-#  glslang_LIBRARY_DIRS
+#  glslang_LIBRARIES
 #  glslang_FOUND
 #  glslang_FOUND
 
 
 set(glslang_INSTALL_DIRS ${PROJECT_SOURCE_DIR}/../Dependencies/glslang CACHE PATH "")
 set(glslang_INSTALL_DIRS ${PROJECT_SOURCE_DIR}/../Dependencies/glslang CACHE PATH "")
@@ -19,10 +17,21 @@ endif()
 message(STATUS "Looking for glslang installation...")
 message(STATUS "Looking for glslang installation...")
 find_path(glslang_INCLUDE_DIR Public/ShaderLang.h PATHS ${glslang_INCLUDE_SEARCH_DIRS})
 find_path(glslang_INCLUDE_DIR Public/ShaderLang.h PATHS ${glslang_INCLUDE_SEARCH_DIRS})
 
 
-find_library(glslang_LIBRARY_OPTIMIZED NAMES glslang HLSL OSDependent OGLCompiler PATHS ${glslang_LIBRARY_SEARCH_DIRS})
-find_library(glslang_LIBRARY_DEBUG NAMES glslangd HLSLd OSDependentd OGLCompilerd PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslang_LIBRARY_OPTIMIZED NAMES glslang PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslangHLSL_LIBRARY_OPTIMIZED NAMES HLSL PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslangOSDependent_LIBRARY_OPTIMIZED NAMES OSDependent PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslangOGLCompiler_LIBRARY_OPTIMIZED NAMES OGLCompiler PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslang_LIBRARY_DEBUG NAMES glslangd glslang PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslangHLSL_LIBRARY_DEBUG NAMES HLSLd HLSL PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslangOSDependent_LIBRARY_DEBUG NAMES OSDependentd OSDependent PATHS ${glslang_LIBRARY_SEARCH_DIRS})
+find_library(glslangOGLCompiler_LIBRARY_DEBUG NAMES OGLCompilerd OGLCompiler PATHS ${glslang_LIBRARY_SEARCH_DIRS})
 
 
-if(glslang_INCLUDE_DIR AND glslang_LIBRARY_OPTIMIZED AND glslang_LIBRARY_DEBUG)
+if(glslang_INCLUDE_DIR AND 
+	glslang_LIBRARY_OPTIMIZED AND glslang_LIBRARY_DEBUG AND
+	glslangHLSL_LIBRARY_OPTIMIZED AND glslangHLSL_LIBRARY_DEBUG AND
+	glslangOSDependent_LIBRARY_OPTIMIZED AND glslangOSDependent_LIBRARY_DEBUG AND
+	glslangOGLCompiler_LIBRARY_OPTIMIZED AND glslangOGLCompiler_LIBRARY_DEBUG
+	)
 	set(glslang_FOUND TRUE)
 	set(glslang_FOUND TRUE)
 endif()
 endif()
 
 
@@ -36,7 +45,39 @@ else()
 	message(STATUS "...glslang OK.")
 	message(STATUS "...glslang OK.")
 endif()
 endif()
 
 
-mark_as_advanced(glslang_INSTALL_DIRS glslang_INCLUDE_DIR glslang_LIBRARY_OPTIMIZED glslang_LIBRARY_DEBUG)
+if(glslang_FOUND)
+	add_library(glslang STATIC IMPORTED)
+	set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_DEBUG "${glslang_LIBRARY_DEBUG}")
+	set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslang_LIBRARY_DEBUG}")
+	set_target_properties(glslang PROPERTIES IMPORTED_LOCATION_RELEASE "${glslang_LIBRARY_OPTIMIZED}")
+	
+	add_library(glslangHLSL STATIC IMPORTED)
+	set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangHLSL_LIBRARY_DEBUG}")
+	set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangHLSL_LIBRARY_DEBUG}")
+	set_target_properties(glslangHLSL PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangHLSL_LIBRARY_OPTIMIZED}")
+
+	add_library(glslangOSDependent STATIC IMPORTED)
+	set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangOSDependent_LIBRARY_DEBUG}")
+	set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangOSDependent_LIBRARY_DEBUG}")
+	set_target_properties(glslangOSDependent PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangOSDependent_LIBRARY_OPTIMIZED}")
+
+	add_library(glslangOGLCompiler STATIC IMPORTED)
+	set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_DEBUG "${glslangOGLCompiler_LIBRARY_DEBUG}")
+	set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${glslangOGLCompiler_LIBRARY_DEBUG}")
+	set_target_properties(glslangOGLCompiler PROPERTIES IMPORTED_LOCATION_RELEASE "${glslangOGLCompiler_LIBRARY_OPTIMIZED}")	
+endif()
+
+mark_as_advanced(
+	glslang_INSTALL_DIRS 
+	glslang_INCLUDE_DIR 
+	glslang_LIBRARY_OPTIMIZED 
+	glslangHLSL_LIBRARY_OPTIMIZED 
+	glslangOSDependent_LIBRARY_OPTIMIZED
+	glslangOGLCompiler_LIBRARY_OPTIMIZED
+	glslang_LIBRARY_DEBUG
+	glslangHLSL_LIBRARY_DEBUG
+	glslangOSDependent_LIBRARY_DEBUG
+	glslangOGLCompiler_LIBRARY_DEBUG)
+
 set(glslang_INCLUDE_DIRS ${glslang_INCLUDE_DIR})
 set(glslang_INCLUDE_DIRS ${glslang_INCLUDE_DIR})
-set(glslang_LIBRARIES_OPTIMIZED ${glslang_LIBRARY_OPTIMIZED})
-set(glslang_LIBRARIES_DEBUG ${glslang_LIBRARY_DEBUG})
+set(glslang_LIBRARIES glslang glslangHLSL glslangOSDependent glslangOGLCompiler)

+ 0 - 10
Source/CMakeLists.txt

@@ -167,16 +167,6 @@ function(add_library_per_config_multi target_name lib_name file_name release_nam
 	target_link_libraries(${target_name} PRIVATE ${lib_name})	
 	target_link_libraries(${target_name} PRIVATE ${lib_name})	
 endfunction()
 endfunction()
 
 
-function(add_package_library target_name lib_name)
-	add_library(${lib_name} STATIC IMPORTED)
-
-	set_target_properties(${lib_name} PROPERTIES IMPORTED_LOCATION_DEBUG "${${lib_name}_LIBRARIES_DEBUG}")
-	set_target_properties(${lib_name} PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${${lib_name}_LIBRARIES_DEBUG}")
-	set_target_properties(${lib_name} PROPERTIES IMPORTED_LOCATION_RELEASE "${${lib_name}_LIBRARIES_OPTIMIZED}")	
-
-	target_link_libraries(${target_name} PRIVATE ${lib_name})	
-endfunction()
-
 function(add_engine_dependencies target_name)
 function(add_engine_dependencies target_name)
 	if(RENDER_API_MODULE MATCHES "DirectX 11")
 	if(RENDER_API_MODULE MATCHES "DirectX 11")
 		add_dependencies(${target_name} BansheeD3D11RenderAPI)
 		add_dependencies(${target_name} BansheeD3D11RenderAPI)