mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-21 20:56:23 +00:00
* Added modules to dbimport so sql cab accessed by loader * updated dbimport tools config option to enable module sql to be updated and populated * Updated casting around GetOption and changed default to all
174 lines
4.7 KiB
CMake
174 lines
4.7 KiB
CMake
#
|
|
# This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
|
|
#
|
|
# This file is free software; as a special exception the author gives
|
|
# unlimited permission to copy and/or distribute it, with or without
|
|
# modifications, as long as this notice is preserved.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
# Make the tools list available in the current scope
|
|
GetToolsList(TOOLS_BUILD_LIST)
|
|
|
|
if (TOOLS_BUILD STREQUAL "none")
|
|
set(TOOLS_DEFAULT_BUILD "disabled")
|
|
else()
|
|
set(TOOLS_DEFAULT_BUILD "enabled")
|
|
endif()
|
|
|
|
# Sets BUILD_TOOLS_USE_WHITELIST
|
|
# Sets BUILD_TOOLS_WHITELIST
|
|
if (TOOLS_BUILD MATCHES "-only")
|
|
set(BUILD_TOOLS_USE_WHITELIST ON)
|
|
|
|
if (TOOLS_BUILD STREQUAL "maps-only")
|
|
list(APPEND BUILD_TOOLS_WHITELIST map_extractor mmaps_generator vmap4_assembler vmap4_extractor)
|
|
endif()
|
|
|
|
if (TOOLS_BUILD STREQUAL "db-only")
|
|
list(APPEND BUILD_TOOLS_WHITELIST dbimport)
|
|
endif()
|
|
endif()
|
|
|
|
# Set the TOOL_${TOOL_BUILD_NAME} variables from the
|
|
# variables set above
|
|
foreach(TOOL_BUILD_NAME ${TOOLS_BUILD_LIST})
|
|
ToolNameToVariable(${TOOL_BUILD_NAME} TOOL_BUILD_VARIABLE)
|
|
|
|
if(${TOOL_BUILD_VARIABLE} STREQUAL "default")
|
|
if(BUILD_TOOLS_USE_WHITELIST)
|
|
list(FIND BUILD_TOOLS_WHITELIST "${TOOL_BUILD_NAME}" INDEX)
|
|
if(${INDEX} GREATER -1)
|
|
set(${TOOL_BUILD_VARIABLE} ${TOOLS_DEFAULT_BUILD})
|
|
else()
|
|
set(${TOOL_BUILD_VARIABLE} "disabled")
|
|
endif()
|
|
else()
|
|
set(${TOOL_BUILD_VARIABLE} ${TOOLS_DEFAULT_BUILD})
|
|
endif()
|
|
endif()
|
|
|
|
# Build the Graph values
|
|
if(${TOOL_BUILD_VARIABLE} MATCHES "enabled")
|
|
list(APPEND TOOL_BUILD_GRAPH_KEYS tools)
|
|
set(TOOL_BUILD_VALUE_DISPLAY_tools tools)
|
|
list(APPEND TOOL_BUILD_VALUE_CONTAINS_tools ${TOOL_BUILD_NAME})
|
|
else()
|
|
list(APPEND TOOL_BUILD_GRAPH_KEYS disabled)
|
|
set(TOOL_BUILD_VALUE_DISPLAY_disabled disabled)
|
|
list(APPEND TOOL_BUILD_VALUE_CONTAINS_disabled ${TOOL_BUILD_NAME})
|
|
endif()
|
|
endforeach()
|
|
|
|
list(SORT TOOL_BUILD_GRAPH_KEYS)
|
|
list(REMOVE_DUPLICATES TOOL_BUILD_GRAPH_KEYS)
|
|
|
|
# Display the graphs
|
|
message("")
|
|
message("* Tools build list (${TOOLS_BUILD}):")
|
|
message(" |")
|
|
|
|
foreach(TOOL_BUILD_GRAPH_KEY ${TOOL_BUILD_GRAPH_KEYS})
|
|
if(NOT TOOL_BUILD_GRAPH_KEY STREQUAL "disabled")
|
|
message(" +- ${TOOL_BUILD_VALUE_DISPLAY_${TOOL_BUILD_GRAPH_KEY}}")
|
|
else()
|
|
message(" | ${TOOL_BUILD_VALUE_DISPLAY_${TOOL_BUILD_GRAPH_KEY}}")
|
|
endif()
|
|
foreach(TOOL_BUILD_GRAPH_ENTRY ${TOOL_BUILD_VALUE_CONTAINS_${TOOL_BUILD_GRAPH_KEY}})
|
|
message(" | +- ${TOOL_BUILD_GRAPH_ENTRY}")
|
|
endforeach()
|
|
message(" |")
|
|
endforeach()
|
|
|
|
message("")
|
|
|
|
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
# Generates the actual tools projects
|
|
foreach(TOOL_NAME ${TOOLS_BUILD_LIST})
|
|
GetPathToTool(${TOOL_NAME} SOURCE_TOOL_PATH)
|
|
ToolNameToVariable(${TOOL_NAME} TOOL_BUILD_VARIABLE)
|
|
|
|
if (${TOOL_BUILD_VARIABLE} STREQUAL "disabled")
|
|
continue()
|
|
endif()
|
|
|
|
unset(TOOL_PRIVATE_SOURCES)
|
|
CollectSourceFiles(
|
|
${SOURCE_TOOL_PATH}
|
|
TOOL_PRIVATE_SOURCES)
|
|
|
|
if (WIN32)
|
|
list(APPEND TOOL_PRIVATE_SOURCES ${winDebugging})
|
|
endif()
|
|
|
|
GetProjectNameOfToolName(${TOOL_NAME} TOOL_PROJECT_NAME)
|
|
|
|
# Create the application project
|
|
add_executable(${TOOL_PROJECT_NAME}
|
|
${TOOL_PRIVATE_SOURCES})
|
|
|
|
add_dependencies(${TOOL_PROJECT_NAME} revision.h)
|
|
|
|
# Need fix errors in maps tools
|
|
# target_link_libraries(${TOOL_PROJECT_NAME}
|
|
# PRIVATE
|
|
# acore-dependency-interface)
|
|
|
|
if (${TOOL_PROJECT_NAME} MATCHES "dbimport")
|
|
target_link_libraries(${TOOL_PROJECT_NAME}
|
|
PUBLIC
|
|
database
|
|
PRIVATE
|
|
modules
|
|
scripts
|
|
acore-core-interface)
|
|
|
|
# Install config
|
|
CopyToolConfig(${TOOL_PROJECT_NAME} ${TOOL_NAME})
|
|
else()
|
|
|
|
target_link_libraries(${TOOL_PROJECT_NAME}
|
|
PRIVATE
|
|
acore-dependency-interface)
|
|
|
|
target_link_libraries(${TOOL_PROJECT_NAME}
|
|
PUBLIC
|
|
common
|
|
mpq
|
|
zlib
|
|
Recast
|
|
g3dlib)
|
|
endif()
|
|
|
|
unset(TOOL_PUBLIC_INCLUDES)
|
|
CollectIncludeDirectories(
|
|
${SOURCE_TOOL_PATH}
|
|
TOOL_PUBLIC_INCLUDES)
|
|
|
|
target_include_directories(${TOOL_PROJECT_NAME}
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
target_include_directories(${TOOL_PROJECT_NAME}
|
|
PUBLIC
|
|
${TOOL_PUBLIC_INCLUDES}
|
|
${CMAKE_SOURCE_DIR}/src
|
|
${CMAKE_SOURCE_DIR}/modules
|
|
PRIVATE
|
|
${CMAKE_CURRENT_BINARY_DIR}/${TOOL_NAME})
|
|
|
|
set_target_properties(${TOOL_PROJECT_NAME}
|
|
PROPERTIES
|
|
FOLDER
|
|
"tools")
|
|
|
|
if (UNIX)
|
|
install(TARGETS ${TOOL_PROJECT_NAME} DESTINATION bin)
|
|
elseif (WIN32)
|
|
install(TARGETS ${TOOL_PROJECT_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
|
endif()
|
|
endforeach()
|