diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55a6906a7..d8e80cdaa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,11 +13,13 @@ Linux client build: - ryzomcore tags: - Docker - image: ubuntu:14.04 + image: debian:jessie script: # Installation des dépendances + - echo "deb http://ftp.debian.org/debian/ jessie-backports non-free contrib main" >> /etc/apt/sources.list - apt-get update - - apt-get install -y g++ gcc cmake libgl1-mesa-dev libjpeg-dev libpng12-dev libopenal-dev libfreetype6-dev libxxf86vm-dev libxrandr-dev libxrender-dev libvorbis-dev libluabind-dev libboost-dev libmysqlclient-dev libssl-dev liblzma-dev libxml2-dev makeself + - apt-get -y upgrade + - apt-get -t jessie-backports install libxml2 -y g++ gcc cmake libcurl4-openssl-dev libgl1-mesa-dev libjpeg-dev libpng-dev libopenal-dev libfreetype6-dev libxxf86vm-dev libxrandr-dev libxrender-dev libvorbis-dev libluabind-dev libboost-dev libmysqlclient-dev libssl-dev liblzma-dev libxml2-dev makeself # Installation des dépendances des dépendances statiques (à commenter si construction de Khanat en mode dynamique) # libxml2 : python-pyicu (support d'unicode), python-dev (support de... python) - apt-get install -y wget python-pyicu python-dev @@ -35,7 +37,7 @@ Linux client build: - cd .. ## Compilation de Khanat # Configuration - - cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=Release -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_UNIX_STRUCTURE=OFF -DWITH_INSTALL_LIBRARIES=OFF -DWITH_LUA52=ON -DCURL_LIBRARY=/usr/local/lib/libcurl.a ../../code + - cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=Release -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_UNIX_STRUCTURE=OFF -DWITH_INSTALL_LIBRARIES=OFF -DWITH_LUA52=ON ../../code # Compilation et installation - make -j$(nproc) install DESTDIR=../../Linux/x86_64 # Packaging diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 2d02fd79b..09a071436 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -36,7 +36,7 @@ IF(COMMAND cmake_policy) IF(POLICY CMP0020) CMAKE_POLICY(SET CMP0020 NEW) ENDIF() -ENDIF(COMMAND cmake_policy) +ENDIF() INCLUDE(nel) INCLUDE(ConfigureChecks) @@ -76,15 +76,15 @@ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # DLL should be in the same directory as EXE under Windows IF(WIN32) SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) -ELSE(WIN32) +ELSE() SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -ENDIF(WIN32) +ENDIF() IF(WIN32) IF(WITH_MFC) FIND_PACKAGE(MFC QUIET) - ENDIF(WITH_MFC) -ENDIF(WIN32) + ENDIF() +ENDIF() #----------------------------------------------------------------------------- # Set default config options @@ -98,8 +98,6 @@ NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS() NL_SETUP_PREFIX_PATHS() RYZOM_SETUP_PREFIX_PATHS() -NL_CONFIGURE_CHECKS() - NL_SETUP_BUILD() NL_SETUP_BUILD_FLAGS() @@ -113,8 +111,8 @@ IF(WIN32) IF(WITH_MFC) FIND_PACKAGE(CustomMFC REQUIRED) - ENDIF(WITH_MFC) -ENDIF(WIN32) + ENDIF() +ENDIF() FIND_PACKAGE(ZLIB REQUIRED) FIND_PACKAGE(LibXml2 REQUIRED) @@ -123,15 +121,25 @@ FIND_PACKAGE(OpenSSL REQUIRED) FIND_PACKAGE(GIF) FIND_PACKAGE(Jpeg) +IF(WITH_LIBOVR) + FIND_PACKAGE(LibOVR) +ENDIF() + +IF(WITH_LIBVR) + FIND_PACKAGE(LibVR) +ENDIF() + +NL_CONFIGURE_CHECKS() + IF(WITH_STATIC_LIBXML2) SET(LIBXML2_DEFINITIONS ${LIBXML2_DEFINITIONS} -DLIBXML_STATIC) -ENDIF(WITH_STATIC_LIBXML2) +ENDIF() IF(WITH_LIBXML2_ICONV) FIND_PACKAGE(Iconv REQUIRED) INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR}) SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${ICONV_LIBRARIES}) -ENDIF(WITH_LIBXML2_ICONV) +ENDIF() IF(WITH_STATIC) # libxml2 could need winsock2 library @@ -146,20 +154,20 @@ IF(WITH_STATIC) SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${LIBLZMA_LIBRARIES}) ENDIF() ENDIF() -ENDIF(WITH_STATIC) +ENDIF() INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake) IF(FINAL_VERSION) ADD_DEFINITIONS(-DFINAL_VERSION=1) -ENDIF(FINAL_VERSION) +ENDIF() IF(WITH_SSE2) ADD_DEFINITIONS(-DNL_HAS_SSE2) IF(WITH_SSE3) ADD_DEFINITIONS(-DNL_HAS_SSE3) - ENDIF(WITH_SSE3) -ENDIF(WITH_SSE2) + ENDIF() +ENDIF() IF(APPLE_CERTIFICATE) # Find codesign_allocate @@ -305,7 +313,7 @@ IF(WITH_QT5) ADD_QT_LIBRARY(XcbQpa) ADD_QT_LIBRARY(PlatformSupport) - SET(QT_LIBRARIES ${QT_LIBRARIES} -lX11-xcb -lXi -lSM -lICE -lxcb -lGL) + SET(QT_LIBRARIES ${QT_LIBRARIES} -lX11-xcb -lXi -lSM -lICE -lxcb -lGL -lxcb-glx) IF(EXISTS "${QT_LIBRARY_DIR}/libxcb-static.a") SET(QT_LIBRARIES ${QT_LIBRARIES} "${QT_LIBRARY_DIR}/libxcb-static.a") ENDIF() @@ -400,16 +408,16 @@ IF(WITH_QT) # Use Qt 4 FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtXml QtOpenGL REQUIRED) -ENDIF(WITH_QT) +ENDIF() IF(WITH_ASSIMP) FIND_PACKAGE(assimp REQUIRED) -ENDIF(WITH_ASSIMP) +ENDIF() IF(WITH_NEL) IF(WITH_NEL_TESTS) FIND_PACKAGE(CppTest) - ENDIF(WITH_NEL_TESTS) + ENDIF() IF(WITH_GUI) FIND_PACKAGE(Luabind REQUIRED) @@ -447,19 +455,19 @@ IF(WITH_NEL) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include) ADD_SUBDIRECTORY(nel) -ENDIF(WITH_NEL) +ENDIF() IF(WITH_RYZOM) ADD_SUBDIRECTORY(ryzom) -ENDIF(WITH_RYZOM) +ENDIF() IF(WITH_NELNS) ADD_SUBDIRECTORY(nelns) -ENDIF(WITH_NELNS) +ENDIF() IF(WITH_SNOWBALLS) ADD_SUBDIRECTORY(snowballs2) -ENDIF(WITH_SNOWBALLS) +ENDIF() IF(WITH_TOOLS) ADD_SUBDIRECTORY(tool) @@ -467,22 +475,22 @@ ENDIF() IF(WITH_STUDIO) ADD_SUBDIRECTORY(studio) -ENDIF(WITH_STUDIO) +ENDIF() # To build the documention, you will have to enable it # and then do the equivalent of "make DoxygenDoc". IF(BUILD_DOCUMENTATION) IF(DOT) SET(HAVE_DOT YES) - ELSE(DOT) + ELSE() SET(HAVE_DOT NO) - ENDIF(DOT) + ENDIF() # This processes our Doxyfile.in and substitutes paths to generate # a final Doxyfile CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doc/Doxyfile.cmake.in ${CMAKE_BINARY_DIR}/doc/Doxyfile) ADD_CUSTOM_TARGET(DoxygenDoc ${DOXYGEN} ${CMAKE_BINARY_DIR}/doc/Doxyfile) -ENDIF(BUILD_DOCUMENTATION) +ENDIF() IF(WITH_NEL_TESTS) ENABLE_TESTING() @@ -492,8 +500,8 @@ IF(WITH_NEL_TESTS) SET(SVNCOMMAND svn) SET(SVNSOURCEDIR http://dev.ryzom.com/svn/trunk/nel) SET(GENERATELOGS svn2cl) - ENDIF(BUILD_DASHBOARD) -ENDIF(WITH_NEL_TESTS) + ENDIF() +ENDIF() # packaging information SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ryzom Core MMORPG Framework") @@ -525,10 +533,10 @@ IF(WIN32) #SET(CPACK_GENERATOR "NSIS") SET(CPACK_GENERATOR "NSIS;ZIP") SET(CPACK_SOURCE_GENERATOR "ZIP") -ELSE(WIN32) +ELSE() SET(CPACK_GENERATOR "TGZ") SET(CPACK_SOURCE_GENERATOR "TGZ") -ENDIF(WIN32) +ENDIF() set(CPACK_SOURCE_IGNORE_FILES "~$" "\\\\.cvsignore$" @@ -546,8 +554,8 @@ IF(WIN32) "${QT_LIBRARY_DIR}/../bin/QtXmld4.dll" "${QT_LIBRARY_DIR}/../bin/QtCored4.dll" DESTINATION ${NL_BIN_PREFIX}) - ENDIF(WITH_QT) - ELSE(NOT CMAKE_BUILD_TYPE STREQUAL "Release") + ENDIF() + ELSE() IF(WITH_QT) INCLUDE(${QT_USE_FILE}) INSTALL(FILES @@ -555,8 +563,8 @@ IF(WIN32) "${QT_LIBRARY_DIR}/../bin/QtXml4.dll" "${QT_LIBRARY_DIR}/../bin/QtCore4.dll" DESTINATION ${NL_BIN_PREFIX}) - ENDIF(WITH_QT) - ENDIF(NOT CMAKE_BUILD_TYPE STREQUAL "Release") + ENDIF() + ENDIF() # Install CEGUI and its dependencies. IF(WITH_NEL_CEGUI) @@ -566,14 +574,14 @@ IF(WIN32) INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIFalagardWRBase.dll" DESTINATION ${NL_BIN_PREFIX}) INSTALL(FILES "${CEGUI_LIB_DIR}/Devil.dll" DESTINATION ${NL_BIN_PREFIX}) INSTALL(FILES "${CEGUI_LIB_DIR}/ILU.dll" DESTINATION ${NL_BIN_PREFIX}) - ENDIF(WITH_NEL_CEGUI) + ENDIF() # Only the tools require MFC. IF(WITH_TOOLS) SET(CMAKE_INSTALL_MFC_LIBRARIES TRUE) - ENDIF(WITH_TOOLS) + ENDIF() #INCLUDE(InstallRequiredSystemLibraries) -ENDIF(WIN32) +ENDIF() INCLUDE(CPack) @@ -583,4 +591,4 @@ INCLUDE(CMakePackaging.txt) #INCLUDE(UseDebian) #IF(DEBIAN_FOUND) # ADD_DEBIAN_TARGETS(nel) -#ENDIF(DEBIAN_FOUND) +#ENDIF() diff --git a/code/CMakeModules/CheckDepends.cmake b/code/CMakeModules/CheckDepends.cmake index d2fbe06e1..701dcd48b 100644 --- a/code/CMakeModules/CheckDepends.cmake +++ b/code/CMakeModules/CheckDepends.cmake @@ -24,8 +24,8 @@ MACRO(CHECK_UNDEFINED_SYMBOL MYLIBRARY SYMBOL SYMBOL_FOUND) IF(NOT NM_SYMBOL MATCHES ${SYMBOL}) SET(${SYMBOL_FOUND} FALSE) # MESSAGE(STATUS "Defined symbol ${SYMBOL} detected in ${${MYLIBRARY}}") - ENDIF(NOT NM_SYMBOL MATCHES ${SYMBOL}) - ENDIF(CMAKE_NM) + ENDIF() + ENDIF() ELSEIF(UNIX) SET(CMAKE_OBJDUMP objdump) IF(CMAKE_OBJDUMP) @@ -35,11 +35,11 @@ MACRO(CHECK_UNDEFINED_SYMBOL MYLIBRARY SYMBOL SYMBOL_FOUND) IF(NOT OBJDUMP_SYMBOL MATCHES "UND") #MESSAGE(STATUS "${${MYLIBRARY}} does not use symbol ${SYMBOL}") SET(${SYMBOL_FOUND} FALSE) - ELSE(NOT OBJDUMP_SYMBOL MATCHES "UND") + ELSE() #MESSAGE(STATUS "${${MYLIBRARY}} uses symbol ${SYMBOL}") - ENDIF(NOT OBJDUMP_SYMBOL MATCHES "UND") - ENDIF(CMAKE_OBJDUMP) - ENDIF(WIN32) + ENDIF() + ENDIF() + ENDIF() ENDMACRO(CHECK_UNDEFINED_SYMBOL) # CHECK_LINKED_LIBRARY @@ -66,8 +66,8 @@ MACRO(CHECK_LINKED_LIBRARY MYLIBRARY OTHERLIBRARY LIBRARY_FOUND) IF(OTOOL_LIBRARY MATCHES "${LIBNAME}") SET(${LIBRARY_FOUND} TRUE) # MESSAGE(STATUS "Library ${LIBNAME} already linked to ${${MYLIBRARY}}") - ENDIF(OTOOL_LIBRARY MATCHES "${LIBNAME}") - ENDIF(CMAKE_OTOOL) + ENDIF() + ENDIF() ELSEIF(UNIX) SET(CMAKE_OBJDUMP objdump) IF(CMAKE_OBJDUMP) @@ -79,11 +79,11 @@ MACRO(CHECK_LINKED_LIBRARY MYLIBRARY OTHERLIBRARY LIBRARY_FOUND) IF(OBJDUMP_LIBRARY MATCHES "NEEDED") #MESSAGE(STATUS "${${MYLIBRARY}} references to ${LIBNAME}.") SET(${LIBRARY_FOUND} TRUE) - ELSE(OBJDUMP_LIBRARY MATCHES "NEEDED") + ELSE() #MESSAGE(STATUS "${${MYLIBRARY}} does not reference to ${LIBNAME}!") - ENDIF(OBJDUMP_LIBRARY MATCHES "NEEDED") - ENDIF(CMAKE_OBJDUMP) - ENDIF(WIN32) + ENDIF() + ENDIF() + ENDIF() ENDMACRO(CHECK_LINKED_LIBRARY) MACRO(CHECK_DEPENDS MYLIBRARY OTHERLIBRARY SYMBOL MUSTLINK) @@ -91,13 +91,13 @@ MACRO(CHECK_DEPENDS MYLIBRARY OTHERLIBRARY SYMBOL MUSTLINK) IF(SYMBOL_FOUND) CHECK_LINKED_LIBRARY(MYLIBRARY OTHERLIBRARY LIBRARY_FOUND) - ENDIF(SYMBOL_FOUND) + ENDIF() IF(SYMBOL_FOUND AND NOT LIBRARY_FOUND) SET(${MUSTLINK} YES) - ELSE(SYMBOL_FOUND AND NOT LIBRARY_FOUND) + ELSE() SET(${MUSTLINK} NO) - ENDIF(SYMBOL_FOUND AND NOT LIBRARY_FOUND) + ENDIF() ENDMACRO(CHECK_DEPENDS) # LINK_DEPENDS @@ -116,23 +116,23 @@ MACRO(LINK_DEPENDS LIBRARIES MYLIBRARY OTHERLIBRARY SYMBOL) IF(WIN32 OR WITH_STATIC) # In static, we link all libraries because it will keep only used symbols SET(MUST_LINK TRUE) - ELSE(WIN32 OR WITH_STATIC) + ELSE() CHECK_UNDEFINED_SYMBOL(${MYLIBRARY} ${SYMBOL} SYMBOL_FOUND) IF(SYMBOL_FOUND) CHECK_LINKED_LIBRARY(${MYLIBRARY} ${OTHERLIBRARY} LIBRARY_FOUND) - ENDIF(SYMBOL_FOUND) + ENDIF() IF(SYMBOL_FOUND AND NOT LIBRARY_FOUND) MESSAGE(STATUS "Underlinking found: ${${MYLIBRARY}} needs ${${OTHERLIBRARY}} but is not linked to, manually linking...") SET(MUST_LINK TRUE) - ENDIF(SYMBOL_FOUND AND NOT LIBRARY_FOUND) - ENDIF(WIN32 OR WITH_STATIC) - ENDIF(${MYLIBRARY} AND ${OTHERLIBRARY} AND NOT ${OTHERLIBRARY}_LINKED) + ENDIF() + ENDIF() + ENDIF() IF(MUST_LINK) MESSAGE(STATUS "Linking with ${${OTHERLIBRARY}}") SET(${LIBRARIES} ${${LIBRARIES}} ${${OTHERLIBRARY}}) SET(${OTHERLIBRARY}_LINKED TRUE) - ENDIF(MUST_LINK) + ENDIF() ENDMACRO(LINK_DEPENDS) diff --git a/code/CMakeModules/ConfigureChecks.cmake b/code/CMakeModules/ConfigureChecks.cmake index 20a53e8b0..cab7a08c1 100644 --- a/code/CMakeModules/ConfigureChecks.cmake +++ b/code/CMakeModules/ConfigureChecks.cmake @@ -40,7 +40,8 @@ MACRO(NL_CONFIGURE_CHECKS) SET(NL_VERSION "${NL_VERSION_MAJOR}.${NL_VERSION_MINOR}.${NL_VERSION_PATCH}.${REVISION}") SET(NL_VERSION_RC "${NL_VERSION_MAJOR},${NL_VERSION_MINOR},${NL_VERSION_PATCH},${REVISION}") - SET(RYZOM_VERSION "${RYZOM_VERSION_MAJOR}.${RYZOM_VERSION_MINOR}.${RYZOM_VERSION_PATCH}.${REVISION}") + SET(RYZOM_VERSION_SHORT "${RYZOM_VERSION_MAJOR}.${RYZOM_VERSION_MINOR}.${RYZOM_VERSION_PATCH}") + SET(RYZOM_VERSION "${RYZOM_VERSION_SHORT}.${REVISION}") SET(RYZOM_VERSION_RC "${RYZOM_VERSION_MAJOR},${RYZOM_VERSION_MINOR},${RYZOM_VERSION_PATCH},${REVISION}") NOW(BUILD_DATE) diff --git a/code/CMakeModules/Find3dsMaxSDK.cmake b/code/CMakeModules/Find3dsMaxSDK.cmake index bde126208..9cd4bd67b 100644 --- a/code/CMakeModules/Find3dsMaxSDK.cmake +++ b/code/CMakeModules/Find3dsMaxSDK.cmake @@ -75,8 +75,8 @@ if(MAXSDK_FOUND) ${MAXSDK_PARAMBLK2_LIBRARY} ${MAXSDK_BMM_LIBRARY} ) -else(MAXSDK_FOUND) +ELSE() set(MAXSDK_LIBRARIES) -endif(MAXSDK_FOUND) +ENDIF() mark_as_advanced(MAXSDK_INCLUDE_DIR MAXSDK_LIBRARY) diff --git a/code/CMakeModules/FindCEGUI.cmake b/code/CMakeModules/FindCEGUI.cmake index a939ebfb7..3259574fc 100644 --- a/code/CMakeModules/FindCEGUI.cmake +++ b/code/CMakeModules/FindCEGUI.cmake @@ -7,7 +7,7 @@ IF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS) # in cache already SET(CEGUI_FIND_QUIETLY TRUE) -ENDIF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS) +ENDIF() FIND_PATH(CEGUI_INCLUDE_DIRS @@ -45,9 +45,9 @@ IF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS) SET(CEGUI_INCLUDE_DIRS "${CEGUI_INCLUDE_DIRS}/CEGUI") IF(NOT CEGUI_FIND_QUIETLY) MESSAGE(STATUS "Found CEGUI: ${CEGUI_LIBRARY}") - ENDIF(NOT CEGUI_FIND_QUIETLY) -ELSE(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS) + ENDIF() +ELSE() IF(NOT CEGUI_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find CEGUI!") - ENDIF(NOT CEGUI_FIND_QUIETLY) -ENDIF(CEGUI_LIBRARY AND CEGUI_INCLUDE_DIRS) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindCppTest.cmake b/code/CMakeModules/FindCppTest.cmake index f5f823f69..7dc2aa35d 100644 --- a/code/CMakeModules/FindCppTest.cmake +++ b/code/CMakeModules/FindCppTest.cmake @@ -10,7 +10,7 @@ IF(CPPTEST_LIBRARIES AND CPPTEST_INCLUDE_DIR) # in cache already SET(CPPTEST_FIND_QUIETLY TRUE) -ENDIF(CPPTEST_LIBRARIES AND CPPTEST_INCLUDE_DIR) +ENDIF() FIND_PATH(CPPTEST_INCLUDE_DIR cpptest.h @@ -30,7 +30,7 @@ SET(LIBRARY_NAME_DEBUG cpptestd) IF(WITH_STLPORT) SET(LIBRARY_NAME_RELEASE cpptest_stlport ${LIBRARY_NAME_RELEASE}) SET(LIBRARY_NAME_DEBUG cpptest_stlportd ${LIBRARY_NAME_DEBUG}) -ENDIF(WITH_STLPORT) +ENDIF() FIND_LIBRARY(CPPTEST_LIBRARY_RELEASE ${LIBRARY_NAME_RELEASE} @@ -67,18 +67,18 @@ IF(CPPTEST_INCLUDE_DIR) SET(CPPTEST_LIBRARIES "optimized;${CPPTEST_LIBRARY_RELEASE}") IF(CPPTEST_LIBRARY_DEBUG) SET(CPPTEST_LIBRARIES "${CPPTEST_LIBRARIES};debug;${CPPTEST_LIBRARY_DEBUG}") - ENDIF(CPPTEST_LIBRARY_DEBUG) - ENDIF(CPPTEST_LIBRARY_RELEASE) -ENDIF(CPPTEST_INCLUDE_DIR) + ENDIF() + ENDIF() +ENDIF() IF(CPPTEST_FOUND) IF(NOT CPPTEST_FIND_QUIETLY) MESSAGE(STATUS "Found CppTest: ${CPPTEST_LIBRARIES}") - ENDIF(NOT CPPTEST_FIND_QUIETLY) -ELSE(CPPTEST_FOUND) + ENDIF() +ELSE() IF(NOT CPPTEST_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find CppTest!") - ENDIF(NOT CPPTEST_FIND_QUIETLY) -ENDIF(CPPTEST_FOUND) + ENDIF() +ENDIF() MARK_AS_ADVANCED(CPPTEST_LIBRARY_RELEASE CPPTEST_LIBRARY_DEBUG) diff --git a/code/CMakeModules/FindCustomMFC.cmake b/code/CMakeModules/FindCustomMFC.cmake index 45d5b8cce..7865d0828 100644 --- a/code/CMakeModules/FindCustomMFC.cmake +++ b/code/CMakeModules/FindCustomMFC.cmake @@ -6,20 +6,20 @@ IF(CustomMFC_FIND_REQUIRED) SET(MFC_FIND_REQUIRED TRUE) -ENDIF(CustomMFC_FIND_REQUIRED) +ENDIF() IF(NOT MFC_DIR) # If MFC have been found, remember their directory IF(VC_DIR) SET(MFC_STANDARD_DIR "${VC_DIR}/atlmfc") - ENDIF(VC_DIR) + ENDIF() FIND_PATH(MFC_DIR include/afxwin.h HINTS ${MFC_STANDARD_DIR} ) -ENDIF(NOT MFC_DIR) +ENDIF() # Display an error message if MFC are not found, MFC_FOUND is updated # User will be able to update MFC_DIR to the correct directory @@ -33,9 +33,9 @@ IF(MFC_FOUND) # Using 32 or 64 bits libraries IF(TARGET_X64) SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib/amd64") - ELSE(TARGET_X64) + ELSE() SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib") - ENDIF(TARGET_X64) + ENDIF() # Add MFC libraries directory to default library path LINK_DIRECTORIES(${MFC_LIBRARY_DIR}) diff --git a/code/CMakeModules/FindDSound.cmake b/code/CMakeModules/FindDSound.cmake index beddf7f99..dde5212ab 100644 --- a/code/CMakeModules/FindDSound.cmake +++ b/code/CMakeModules/FindDSound.cmake @@ -8,7 +8,7 @@ if(DSOUND_INCLUDE_DIR) # Already in cache, be silent set(DSOUND_FIND_QUIETLY TRUE) -endif(DSOUND_INCLUDE_DIR) +ENDIF() find_path(DSOUND_INCLUDE_DIR dsound.h "$ENV{DXSDK_DIR}" @@ -29,8 +29,8 @@ find_package_handle_standard_args(DSOUND DEFAULT_MSG if(DSOUND_FOUND) set(DSOUND_LIBRARIES ${DSOUND_LIBRARY}) -else(DSOUND_FOUND) +ELSE() set(DSOUND_LIBRARIES) -endif(DSOUND_FOUND) +ENDIF() mark_as_advanced(DSOUND_INCLUDE_DIR DSOUND_LIBRARY) diff --git a/code/CMakeModules/FindDirectXSDK.cmake b/code/CMakeModules/FindDirectXSDK.cmake index 847a6d596..4519ef16d 100644 --- a/code/CMakeModules/FindDirectXSDK.cmake +++ b/code/CMakeModules/FindDirectXSDK.cmake @@ -8,7 +8,7 @@ IF(DXSDK_DIR) # Already in cache, be silent SET(DXSDK_FIND_QUIETLY TRUE) -ENDIF(DXSDK_DIR) +ENDIF() FIND_PATH(DXSDK_DIR "Include/dxsdkver.h" diff --git a/code/CMakeModules/FindEFXUtil.cmake b/code/CMakeModules/FindEFXUtil.cmake index 5e2f410b0..628a0eba5 100644 --- a/code/CMakeModules/FindEFXUtil.cmake +++ b/code/CMakeModules/FindEFXUtil.cmake @@ -7,7 +7,7 @@ IF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR) # in cache already SET(EFXUTIL_FIND_QUIETLY TRUE) -ENDIF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR) +ENDIF() FIND_PATH(EFXUTIL_INCLUDE_DIR @@ -42,9 +42,9 @@ IF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR) SET(EFXUTIL_FOUND "YES") IF(NOT EFXUTIL_FIND_QUIETLY) MESSAGE(STATUS "Found EFX-Util: ${EFXUTIL_LIBRARY}") - ENDIF(NOT EFXUTIL_FIND_QUIETLY) -ELSE(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR) + ENDIF() +ELSE() IF(NOT EFXUTIL_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find EFX-Util!") - ENDIF(NOT EFXUTIL_FIND_QUIETLY) -ENDIF(EFXUTIL_LIBRARY AND EFXUTIL_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindExternal.cmake b/code/CMakeModules/FindExternal.cmake index 80b3eda0c..8364026cd 100644 --- a/code/CMakeModules/FindExternal.cmake +++ b/code/CMakeModules/FindExternal.cmake @@ -16,7 +16,7 @@ IF(WITH_STLPORT) SET(EXTERNAL_TEMP_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external_stlport ${CMAKE_CURRENT_SOURCE_DIR}/../external_stlport ${EXTERNAL_TEMP_PATH}) SET(EXTERNAL_TEMP_FILE "include/stlport/string") SET(EXTERNAL_NAME "external with STLport") -ENDIF(WITH_STLPORT) +ENDIF() FIND_PATH(EXTERNAL_PATH ${EXTERNAL_TEMP_FILE} diff --git a/code/CMakeModules/FindFMOD.cmake b/code/CMakeModules/FindFMOD.cmake index f85795142..b28f77b1e 100644 --- a/code/CMakeModules/FindFMOD.cmake +++ b/code/CMakeModules/FindFMOD.cmake @@ -7,7 +7,7 @@ IF(FMOD_LIBRARY AND FMOD_INCLUDE_DIR) # in cache already SET(FMOD_FIND_QUIETLY TRUE) -ENDIF(FMOD_LIBRARY AND FMOD_INCLUDE_DIR) +ENDIF() FIND_PATH(FMOD_INCLUDE_DIR @@ -25,9 +25,9 @@ FIND_PATH(FMOD_INCLUDE_DIR IF(TARGET_X64) SET(FMOD_LIBRARY_NAMES fmod64 fmod) -ELSE(TARGET_X64) +ELSE() SET(FMOD_LIBRARY_NAMES fmodvc fmod) -ENDIF(TARGET_X64) +ENDIF() FIND_LIBRARY(FMOD_LIBRARY NAMES @@ -49,9 +49,9 @@ IF(FMOD_LIBRARY AND FMOD_INCLUDE_DIR) SET(FMOD_FOUND "YES") IF(NOT FMOD_FIND_QUIETLY) MESSAGE(STATUS "Found FMOD: ${FMOD_LIBRARY}") - ENDIF(NOT FMOD_FIND_QUIETLY) -ELSE(FMOD_LIBRARY AND FMOD_INCLUDE_DIR) + ENDIF() +ELSE() IF(NOT FMOD_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find FMOD!") - ENDIF(NOT FMOD_FIND_QUIETLY) -ENDIF(FMOD_LIBRARY AND FMOD_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindFreeType.cmake b/code/CMakeModules/FindFreeType.cmake index f6b827899..d101607b4 100644 --- a/code/CMakeModules/FindFreeType.cmake +++ b/code/CMakeModules/FindFreeType.cmake @@ -7,7 +7,7 @@ IF(FREETYPE_LIBRARIES AND FREETYPE_INCLUDE_DIRS) # in cache already SET(Freetype_FIND_QUIETLY TRUE) -ENDIF(FREETYPE_LIBRARIES AND FREETYPE_INCLUDE_DIRS) +ENDIF() FIND_PATH(FREETYPE_INCLUDE_DIRS freetype @@ -24,7 +24,7 @@ FIND_PATH(FREETYPE_INCLUDE_DIRS IF(NOT FREETYPE_INCLUDE_DIRS) SET(FREETYPE_INCLUDE_DIRS "") -ENDIF(NOT FREETYPE_INCLUDE_DIRS) +ENDIF() # ft2build.h does not reside in the freetype include dir FIND_PATH(FREETYPE_ADDITIONAL_INCLUDE_DIR @@ -42,7 +42,7 @@ FIND_PATH(FREETYPE_ADDITIONAL_INCLUDE_DIR # combine both include directories into one variable IF(FREETYPE_ADDITIONAL_INCLUDE_DIR) SET(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS} ${FREETYPE_ADDITIONAL_INCLUDE_DIR}) -ENDIF(FREETYPE_ADDITIONAL_INCLUDE_DIR) +ENDIF() FIND_LIBRARY(FREETYPE_LIBRARY_RELEASE NAMES freetype libfreetype freetype219 freetype246 @@ -89,8 +89,8 @@ IF(FREETYPE_INCLUDE_DIRS) # Case where Freetype is compiled from sources (debug version is compiled by default) SET(FREETYPE_FOUND ON) SET(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY_DEBUG}) - ENDIF(FREETYPE_LIBRARY_RELEASE AND FREETYPE_LIBRARY_DEBUG) -ENDIF(FREETYPE_INCLUDE_DIRS) + ENDIF() +ENDIF() IF(FREETYPE_FOUND) IF(WITH_STATIC_EXTERNAL AND APPLE) @@ -98,13 +98,13 @@ IF(FREETYPE_FOUND) IF(BZIP2_FOUND) SET(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS} ${BZIP2_INCLUDE_DIR}) SET(FREETYPE_LIBRARIES ${FREETYPE_LIBRARIES} ${BZIP2_LIBRARIES}) - ENDIF(BZIP2_FOUND) - ENDIF(WITH_STATIC_EXTERNAL AND APPLE) + ENDIF() + ENDIF() IF(NOT Freetype_FIND_QUIETLY) MESSAGE(STATUS "Found FreeType: ${FREETYPE_LIBRARIES}") - ENDIF(NOT Freetype_FIND_QUIETLY) -ELSE(FREETYPE_LIBRARY AND FREETYPE_INCLUDE_DIRS) + ENDIF() +ELSE() IF(NOT Freetype_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find FreeType!") - ENDIF(NOT Freetype_FIND_QUIETLY) -ENDIF(FREETYPE_FOUND) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindIconv.cmake b/code/CMakeModules/FindIconv.cmake index 092b35702..e96fe4054 100644 --- a/code/CMakeModules/FindIconv.cmake +++ b/code/CMakeModules/FindIconv.cmake @@ -20,7 +20,7 @@ FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv c PATHS /opt/local) IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) SET(ICONV_FOUND TRUE) -ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) +ENDIF() set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) @@ -29,7 +29,7 @@ IF(ICONV_FOUND) set (CMAKE_C_FLAGS_BACKUP "${CMAKE_C_FLAGS}") if(ICONV_HAVE_WERROR) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") - endif(ICONV_HAVE_WERROR) + ENDIF() check_c_source_compiles(" #include int main(){ @@ -43,19 +43,19 @@ IF(ICONV_FOUND) } " ICONV_SECOND_ARGUMENT_IS_CONST ) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BACKUP}") -ENDIF(ICONV_FOUND) +ENDIF() set(CMAKE_REQUIRED_INCLUDES) set(CMAKE_REQUIRED_LIBRARIES) IF(ICONV_FOUND) IF(NOT ICONV_FIND_QUIETLY) MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}") - ENDIF(NOT ICONV_FIND_QUIETLY) -ELSE(ICONV_FOUND) + ENDIF() +ELSE() IF(Iconv_FIND_REQUIRED) MESSAGE(FATAL_ERROR "Could not find Iconv") - ENDIF(Iconv_FIND_REQUIRED) -ENDIF(ICONV_FOUND) + ENDIF() +ENDIF() MARK_AS_ADVANCED( ICONV_INCLUDE_DIR diff --git a/code/CMakeModules/FindJpeg.cmake b/code/CMakeModules/FindJpeg.cmake index 454f0fdc2..b77eba41b 100644 --- a/code/CMakeModules/FindJpeg.cmake +++ b/code/CMakeModules/FindJpeg.cmake @@ -7,7 +7,7 @@ IF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR) # in cache already SET(JPEG_FIND_QUIETLY TRUE) -ENDIF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR) +ENDIF() FIND_PATH(JPEG_INCLUDE_DIR @@ -42,9 +42,9 @@ IF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR) SET(JPEG_FOUND "YES") IF(NOT JPEG_FIND_QUIETLY) MESSAGE(STATUS "Found Jpeg: ${JPEG_LIBRARY}") - ENDIF(NOT JPEG_FIND_QUIETLY) -ELSE(JPEG_LIBRARY AND JPEG_INCLUDE_DIR) + ENDIF() +ELSE() IF(NOT JPEG_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find Jpeg!") - ENDIF(NOT JPEG_FIND_QUIETLY) -ENDIF(JPEG_LIBRARY AND JPEG_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindLibOVR.cmake b/code/CMakeModules/FindLibOVR.cmake index b182da00c..081fa0bca 100644 --- a/code/CMakeModules/FindLibOVR.cmake +++ b/code/CMakeModules/FindLibOVR.cmake @@ -7,10 +7,11 @@ IF(LIBOVR_LIBRARIES AND LIBOVR_INCLUDE_DIR) # in cache already SET(LIBOVR_FIND_QUIETLY TRUE) -ENDIF(LIBOVR_LIBRARIES AND LIBOVR_INCLUDE_DIR) +ENDIF() FIND_PATH(LIBOVR_INCLUDE_DIR - OVR.h + NAMES + OVR.h OVR_CAPI.h PATHS $ENV{LIBOVR_DIR}/Include /usr/local/include @@ -24,18 +25,18 @@ FIND_PATH(LIBOVR_INCLUDE_DIR IF(UNIX) IF(TARGET_X64) SET(LIBOVR_LIBRARY_BUILD_PATH "Lib/Linux/Release/x86_64") - ELSE(TARGET_X64) + ELSE() SET(LIBOVR_LIBRARY_BUILD_PATH "Lib/Linux/Release/i386") - ENDIF(TARGET_X64) + ENDIF() ELSEIF(APPLE) SET(LIBOVR_LIBRARY_BUILD_PATH "Lib/MacOS/Release") ELSEIF(WIN32) IF(TARGET_X64) SET(LIBOVR_LIBRARY_BUILD_PATH "Lib/x64") - ELSE(TARGET_X64) + ELSE() SET(LIBOVR_LIBRARY_BUILD_PATH "Lib/Win32") - ENDIF(TARGET_X64) -ENDIF(UNIX) + ENDIF() +ENDIF() FIND_LIBRARY(LIBOVR_LIBRARY NAMES ovr libovr @@ -55,17 +56,17 @@ FIND_LIBRARY(LIBOVR_LIBRARY IF(LIBOVR_LIBRARY AND LIBOVR_INCLUDE_DIR) IF(NOT LIBOVR_FIND_QUIETLY) MESSAGE(STATUS "Found LibOVR: ${LIBOVR_LIBRARY}") - ENDIF(NOT LIBOVR_FIND_QUIETLY) + ENDIF() SET(LIBOVR_FOUND "YES") SET(LIBOVR_DEFINITIONS "-DHAVE_LIBOVR") SET(NL_STEREO_AVAILABLE ON) IF(UNIX) SET(LIBOVR_LIBRARIES ${LIBOVR_LIBRARY} X11 Xinerama udev pthread) - ELSE(UNIX) + ELSE() SET(LIBOVR_LIBRARIES ${LIBOVR_LIBRARY}) - ENDIF(UNIX) -ELSE(LIBOVR_LIBRARY AND LIBOVR_INCLUDE_DIR) + ENDIF() +ELSE() IF(NOT LIBOVR_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find LibOVR!") - ENDIF(NOT LIBOVR_FIND_QUIETLY) -ENDIF(LIBOVR_LIBRARY AND LIBOVR_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindLibVR.cmake b/code/CMakeModules/FindLibVR.cmake index e8bcf2fde..5e9da0342 100644 --- a/code/CMakeModules/FindLibVR.cmake +++ b/code/CMakeModules/FindLibVR.cmake @@ -7,7 +7,7 @@ IF(LIBVR_LIBRARIES AND LIBVR_INCLUDE_DIR) # in cache already SET(LIBVR_FIND_QUIETLY TRUE) -ENDIF(LIBVR_LIBRARIES AND LIBVR_INCLUDE_DIR) +ENDIF() FIND_PATH(LIBVR_INCLUDE_DIR hmd.h PATH_SUFFIXES include/LibVR @@ -22,12 +22,12 @@ FIND_LIBRARY(LIBVR_LIBRARY IF(LIBVR_LIBRARY AND LIBVR_INCLUDE_DIR) IF(NOT LIBVR_FIND_QUIETLY) MESSAGE(STATUS "Found LibVR: ${LIBVR_LIBRARY}") - ENDIF(NOT LIBVR_FIND_QUIETLY) + ENDIF() SET(LIBVR_FOUND "YES") SET(LIBVR_DEFINITIONS "-DHAVE_LIBVR") SET(NL_STEREO_AVAILABLE ON) -ELSE(LIBVR_LIBRARY AND LIBVR_INCLUDE_DIR) +ELSE() IF(NOT LIBVR_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find LibVR!") - ENDIF(NOT LIBVR_FIND_QUIETLY) -ENDIF(LIBVR_LIBRARY AND LIBVR_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindLuabind.cmake b/code/CMakeModules/FindLuabind.cmake index c21d64e4f..5511379a3 100644 --- a/code/CMakeModules/FindLuabind.cmake +++ b/code/CMakeModules/FindLuabind.cmake @@ -143,7 +143,7 @@ ENDIF() IF(WITH_STLPORT) LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport) LIST(APPEND LIBRARY_NAME_DEBUG luabind_stlportd) -ENDIF(WITH_STLPORT) +ENDIF() # generic libraries names LIST(APPEND LIBRARY_NAME_RELEASE luabind libluabind) @@ -194,7 +194,7 @@ IF(LUABIND_INCLUDE_DIR AND Boost_INCLUDE_DIR) # Case where Luabind is compiled from sources (debug version is compiled by default) SET(LUABIND_FOUND TRUE) SET(LUABIND_LIBRARIES ${LUABIND_LIBRARY_DEBUG}) - ENDIF(LUABIND_LIBRARY_RELEASE AND LUABIND_LIBRARY_DEBUG) + ENDIF() ENDIF() IF(LUABIND_FOUND) @@ -209,11 +209,11 @@ IF(LUABIND_FOUND) IF(NOT Luabind_FIND_QUIETLY) MESSAGE(STATUS "Found Luabind: ${LUABIND_LIBRARIES}") - ENDIF(NOT Luabind_FIND_QUIETLY) + ENDIF() ELSE() IF(NOT Luabind_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find Luabind!") ENDIF() -ENDIF(LUABIND_FOUND) +ENDIF() MARK_AS_ADVANCED(LUABIND_LIBRARY_RELEASE LUABIND_LIBRARY_DEBUG Boost_LIB_DIAGNOSTIC_DEFINITIONS) diff --git a/code/CMakeModules/FindOgg.cmake b/code/CMakeModules/FindOgg.cmake index 8762afc5d..c1f4492e1 100644 --- a/code/CMakeModules/FindOgg.cmake +++ b/code/CMakeModules/FindOgg.cmake @@ -7,7 +7,7 @@ IF(OGG_LIBRARY AND OGG_INCLUDE_DIR) # in cache already SET(OGG_FIND_QUIETLY TRUE) -ENDIF(OGG_LIBRARY AND OGG_INCLUDE_DIR) +ENDIF() FIND_PATH(OGG_INCLUDE_DIR @@ -41,9 +41,9 @@ IF(OGG_LIBRARY AND OGG_INCLUDE_DIR) SET(OGG_FOUND "YES") IF(NOT OGG_FIND_QUIETLY) MESSAGE(STATUS "Found Ogg: ${OGG_LIBRARY}") - ENDIF(NOT OGG_FIND_QUIETLY) -ELSE(OGG_LIBRARY AND OGG_INCLUDE_DIR) + ENDIF() +ELSE() IF(NOT OGG_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find Ogg!") - ENDIF(NOT OGG_FIND_QUIETLY) -ENDIF(OGG_LIBRARY AND OGG_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindOpenGLES.cmake b/code/CMakeModules/FindOpenGLES.cmake index 35157b95b..74a5b4021 100644 --- a/code/CMakeModules/FindOpenGLES.cmake +++ b/code/CMakeModules/FindOpenGLES.cmake @@ -43,7 +43,7 @@ IF(OPENGLES_GLES_LIBRARY) IF(OPENGLES_EGL_LIBRARY) SET(OPENGLES_EGL_FOUND "YES") SET(OPENGLES_LIBRARIES ${OPENGLES_EGL_LIBRARY} ${OPENGLES_LIBRARIES}) - ELSE(OPENGLES_EGL_LIBRARY) + ELSE() SET(OPENGLES_EGL_FOUND "NO") - ENDIF(OPENGLES_EGL_LIBRARY) -ENDIF(OPENGLES_GLES_LIBRARY) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindSTLport.cmake b/code/CMakeModules/FindSTLport.cmake index 22e0745ba..68e542ea5 100644 --- a/code/CMakeModules/FindSTLport.cmake +++ b/code/CMakeModules/FindSTLport.cmake @@ -9,7 +9,7 @@ IF(STLPORT_LIBRARIES AND STLPORT_INCLUDE_DIR) # in cache already SET(STLPORT_FIND_QUIETLY TRUE) -ENDIF(STLPORT_LIBRARIES AND STLPORT_INCLUDE_DIR) +ENDIF() FIND_PATH(STLPORT_INCLUDE_DIR iostream @@ -74,18 +74,18 @@ IF(STLPORT_INCLUDE_DIR) SET(STLPORT_LIBRARIES ${STLPORT_LIBRARY_RELEASE}) IF(STLPORT_LIBRARY_DEBUG) SET(STLPORT_LIBRARIES optimized ${STLPORT_LIBRARIES} debug ${STLPORT_LIBRARY_DEBUG}) - ENDIF(STLPORT_LIBRARY_DEBUG) - ENDIF(STLPORT_LIBRARY_RELEASE) -ENDIF(STLPORT_INCLUDE_DIR) + ENDIF() + ENDIF() +ENDIF() IF(STLPORT_FOUND) IF(NOT STLPORT_FIND_QUIETLY) MESSAGE(STATUS "Found STLport: ${STLPORT_LIBRARIES}") - ENDIF(NOT STLPORT_FIND_QUIETLY) -ELSE(STLPORT_FOUND) + ENDIF() +ELSE() IF(NOT STLPORT_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find STLport!") - ENDIF(NOT STLPORT_FIND_QUIETLY) -ENDIF(STLPORT_FOUND) + ENDIF() +ENDIF() MARK_AS_ADVANCED(STLPORT_LIBRARY_RELEASE STLPORT_LIBRARY_DEBUG) diff --git a/code/CMakeModules/FindSquish.cmake b/code/CMakeModules/FindSquish.cmake index 61250fec1..4242f4055 100644 --- a/code/CMakeModules/FindSquish.cmake +++ b/code/CMakeModules/FindSquish.cmake @@ -10,7 +10,7 @@ IF(SQUISH_LIBRARIES AND SQUISH_INCLUDE_DIR) # in cache already SET(SQUISH_FIND_QUIETLY TRUE) -ENDIF(SQUISH_LIBRARIES AND SQUISH_INCLUDE_DIR) +ENDIF() FIND_PATH(SQUISH_INCLUDE_DIR squish.h @@ -58,26 +58,26 @@ IF(SQUISH_INCLUDE_DIR) SET(SQUISH_LIBRARIES "optimized;${SQUISH_LIBRARY_RELEASE}") IF(SQUISH_LIBRARY_DEBUG) SET(SQUISH_LIBRARIES "${SQUISH_LIBRARIES};debug;${SQUISH_LIBRARY_DEBUG}") - ELSE(SQUISH_LIBRARY_DEBUG) + ELSE() SET(SQUISH_LIBRARIES "${SQUISH_LIBRARIES};debug;${SQUISH_LIBRARY_RELEASE}") MESSAGE("Debug Squish NOT found, using the release version!") - ENDIF(SQUISH_LIBRARY_DEBUG) - ENDIF(SQUISH_LIBRARY_RELEASE) -ENDIF(SQUISH_INCLUDE_DIR) + ENDIF() + ENDIF() +ENDIF() IF(SQUISH_FOUND) IF(NOT SQUISH_FIND_QUIETLY) MESSAGE(STATUS "Found Squish: ${SQUISH_LIBRARIES}") - ENDIF(NOT SQUISH_FIND_QUIETLY) + ENDIF() FILE(STRINGS ${SQUISH_INCLUDE_DIR}/squish.h METRIC REGEX "metric = 0") IF(METRIC) SET(SQUISH_COMPRESS_HAS_METRIC ON) SET(SQUISH_DEFINITIONS -DSQUISH_COMPRESS_HAS_METRIC) - ENDIF(METRIC) -ELSE(SQUISH_FOUND) + ENDIF() +ELSE() IF(NOT SQUISH_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find Squish!") - ENDIF(NOT SQUISH_FIND_QUIETLY) -ENDIF(SQUISH_FOUND) + ENDIF() +ENDIF() MARK_AS_ADVANCED(SQUISH_LIBRARY_RELEASE SQUISH_LIBRARY_DEBUG) diff --git a/code/CMakeModules/FindVorbis.cmake b/code/CMakeModules/FindVorbis.cmake index 95883fa59..234d2d31a 100644 --- a/code/CMakeModules/FindVorbis.cmake +++ b/code/CMakeModules/FindVorbis.cmake @@ -7,7 +7,7 @@ IF(VORBIS_LIBRARY AND VORBIS_INCLUDE_DIR) # in cache already SET(VORBIS_FIND_QUIETLY TRUE) -ENDIF(VORBIS_LIBRARY AND VORBIS_INCLUDE_DIR) +ENDIF() FIND_PATH(VORBIS_INCLUDE_DIR @@ -57,9 +57,9 @@ IF(VORBIS_LIBRARY AND VORBISFILE_LIBRARY AND VORBIS_INCLUDE_DIR) SET(VORBIS_LIBRARIES ${VORBIS_LIBRARY} ${VORBISFILE_LIBRARY}) IF(NOT VORBIS_FIND_QUIETLY) MESSAGE(STATUS "Found Vorbis: ${VORBIS_LIBRARY}") - ENDIF(NOT VORBIS_FIND_QUIETLY) -ELSE(VORBIS_LIBRARY AND VORBISFILE_LIBRARY AND VORBIS_INCLUDE_DIR) + ENDIF() +ELSE() IF(NOT VORBIS_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find Vorbis!") - ENDIF(NOT VORBIS_FIND_QUIETLY) -ENDIF(VORBIS_LIBRARY AND VORBISFILE_LIBRARY AND VORBIS_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/FindXF86VidMode.cmake b/code/CMakeModules/FindXF86VidMode.cmake index 88fa40ad7..15dae03de 100644 --- a/code/CMakeModules/FindXF86VidMode.cmake +++ b/code/CMakeModules/FindXF86VidMode.cmake @@ -7,7 +7,7 @@ IF(XF86VidMode_LIBRARY AND XF86VidMode_INCLUDE_DIR) # in cache already SET(XF86VidMode_FIND_QUIETLY TRUE) -ENDIF(XF86VidMode_LIBRARY AND XF86VidMode_INCLUDE_DIR) +ENDIF() FIND_PATH(XF86VidMode_INCLUDE_DIR @@ -37,10 +37,10 @@ IF(XF86VidMode_LIBRARY AND XF86VidMode_INCLUDE_DIR) SET(XF86VidMode_DEFINITIONS -DXF86VIDMODE) IF(NOT XF86VidMode_FIND_QUIETLY) MESSAGE(STATUS "Found XF86VidMode: ${XF86VidMode_LIBRARY}") - ENDIF(NOT XF86VidMode_FIND_QUIETLY) -ELSE(XF86VidMode_LIBRARY AND XF86VidMode_INCLUDE_DIR) + ENDIF() +ELSE() IF(NOT XF86VidMode_FIND_QUIETLY) MESSAGE(STATUS "Warning: Unable to find XF86VidMode!") - ENDIF(NOT XF86VidMode_FIND_QUIETLY) -ENDIF(XF86VidMode_LIBRARY AND XF86VidMode_INCLUDE_DIR) + ENDIF() +ENDIF() diff --git a/code/CMakeModules/PCHSupport.cmake b/code/CMakeModules/PCHSupport.cmake index 20539e87f..01118650e 100644 --- a/code/CMakeModules/PCHSupport.cmake +++ b/code/CMakeModules/PCHSupport.cmake @@ -33,17 +33,29 @@ MACRO(PCH_SET_COMPILE_FLAGS _target) SET(PCH_ARCHS) SET(_FLAGS) - LIST(APPEND _FLAGS ${CMAKE_CXX_FLAGS}) + # C++ flags + SET(_FLAG ${CMAKE_CXX_FLAGS}) + SEPARATE_ARGUMENTS(_FLAG) + + LIST(APPEND _FLAGS ${_FLAG}) + + # C++ config flags STRING(TOUPPER "${CMAKE_BUILD_TYPE}" _UPPER_BUILD) - LIST(APPEND _FLAGS " ${CMAKE_CXX_FLAGS_${_UPPER_BUILD}}") + + SET(_FLAG ${CMAKE_CXX_FLAGS_${_UPPER_BUILD}}) + SEPARATE_ARGUMENTS(_FLAG) + + LIST(APPEND _FLAGS ${_FLAG}) GET_TARGET_PROPERTY(_targetType ${_target} TYPE) SET(_USE_PIC OFF) IF(${_targetType} STREQUAL "SHARED_LIBRARY" OR ${_targetType} STREQUAL "MODULE_LIBRARY") - LIST(APPEND _FLAGS " ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") + SET(_FLAG ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}) + SEPARATE_ARGUMENTS(_FLAG) + LIST(APPEND _FLAGS ${_FLAG}) ELSE() GET_TARGET_PROPERTY(_pic ${_target} POSITION_INDEPENDENT_CODE) IF(_pic) @@ -53,67 +65,71 @@ MACRO(PCH_SET_COMPILE_FLAGS _target) GET_DIRECTORY_PROPERTY(DIRINC INCLUDE_DIRECTORIES) FOREACH(item ${DIRINC}) - LIST(APPEND _FLAGS " -I\"${item}\"") + LIST(APPEND _FLAGS -I"${item}") ENDFOREACH() + # NOTE: As cmake files (eg FindQT4) may now use generator expressions around their defines that evaluate + # to an empty string, wrap all "items" in an expression that outputs a -D IFF the generated + # expression is not empty. + # Required for CMake 2.6 SET(GLOBAL_DEFINITIONS) GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS) IF(DEFINITIONS) FOREACH(item ${DEFINITIONS}) - LIST(APPEND GLOBAL_DEFINITIONS " -D${item}") + LIST(APPEND GLOBAL_DEFINITIONS "$<$:-D$>") ENDFOREACH() ENDIF() GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS_${_UPPER_BUILD}) IF(DEFINITIONS) FOREACH(item ${DEFINITIONS}) - LIST(APPEND GLOBAL_DEFINITIONS " -D${item}") + LIST(APPEND GLOBAL_DEFINITIONS "$<$:-D$>") ENDFOREACH() ENDIF() GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS) IF(DEFINITIONS) FOREACH(item ${DEFINITIONS}) - LIST(APPEND GLOBAL_DEFINITIONS " -D${item}") + LIST(APPEND GLOBAL_DEFINITIONS "$<$:-D$>") ENDFOREACH() ENDIF() GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS_${_UPPER_BUILD}) IF(DEFINITIONS) FOREACH(item ${DEFINITIONS}) - LIST(APPEND GLOBAL_DEFINITIONS " -D${item}") + LIST(APPEND GLOBAL_DEFINITIONS "$<$:-D$>") ENDFOREACH() ENDIF() GET_TARGET_PROPERTY(oldProps ${_target} COMPILE_FLAGS) IF(oldProps) - LIST(APPEND _FLAGS " ${oldProps}") + LIST(APPEND _FLAGS ${oldProps}) ENDIF() GET_TARGET_PROPERTY(oldPropsBuild ${_target} COMPILE_FLAGS_${_UPPER_BUILD}) IF(oldPropsBuild) - LIST(APPEND _FLAGS " ${oldPropsBuild}") + LIST(APPEND _FLAGS ${oldPropsBuild}) ENDIF() GET_TARGET_PROPERTY(DIRINC ${_target} INCLUDE_DIRECTORIES) IF(DIRINC) FOREACH(item ${DIRINC}) - LIST(APPEND _FLAGS " -I\"${item}\"") + LIST(APPEND _FLAGS -I"${item}") ENDFOREACH() ENDIF() GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS) IF(DEFINITIONS) FOREACH(item ${DEFINITIONS}) - LIST(APPEND GLOBAL_DEFINITIONS " -D${item}") + LIST(APPEND GLOBAL_DEFINITIONS "$<$:-D$>") ENDFOREACH() ENDIF() GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS_${_UPPER_BUILD}) IF(DEFINITIONS) FOREACH(item ${DEFINITIONS}) - LIST(APPEND GLOBAL_DEFINITIONS " -D${item}") + LIST(APPEND GLOBAL_DEFINITIONS "$<$:-D$>") ENDFOREACH() ENDIF() @@ -126,7 +142,7 @@ MACRO(PCH_SET_COMPILE_FLAGS _target) IF(_DIRS) FOREACH(item ${_DIRS}) - LIST(APPEND GLOBAL_DEFINITIONS " -I\"${item}\"") + LIST(APPEND GLOBAL_DEFINITIONS -I"${item}") ENDFOREACH() ENDIF() @@ -135,10 +151,7 @@ MACRO(PCH_SET_COMPILE_FLAGS _target) IF(_DEFINITIONS) FOREACH(item ${_DEFINITIONS}) - # don't use dynamic expressions - IF(NOT item MATCHES "\\$<") - LIST(APPEND GLOBAL_DEFINITIONS " -D${item}") - ENDIF() + LIST(APPEND GLOBAL_DEFINITIONS "$<$:-D$>") ENDFOREACH() ENDIF() ENDIF() @@ -149,7 +162,7 @@ MACRO(PCH_SET_COMPILE_FLAGS _target) IF(GLOBAL_DEFINITIONS MATCHES "QT_CORE_LIB") # Hack to define missing QT_NO_DEBUG with Qt 5.2 IF(_UPPER_BUILD STREQUAL "RELEASE") - LIST(APPEND GLOBAL_DEFINITIONS " -DQT_NO_DEBUG") + LIST(APPEND GLOBAL_DEFINITIONS "-DQT_NO_DEBUG") ENDIF() # Qt5_POSITION_INDEPENDENT_CODE should be true if Qt was compiled with PIC @@ -158,28 +171,26 @@ MACRO(PCH_SET_COMPILE_FLAGS _target) ENDIF() IF(_USE_PIC) - LIST(APPEND _FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_PIC}") + LIST(APPEND _FLAGS ${CMAKE_CXX_COMPILE_OPTIONS_PIC}) ENDIF() ENDIF() - LIST(APPEND _FLAGS " ${GLOBAL_DEFINITIONS}") - IF(CMAKE_VERSION VERSION_LESS "3.3.0") GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) GET_DIRECTORY_PROPERTY(_directory_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS) - LIST(APPEND _FLAGS " ${_directory_flags}") - LIST(APPEND _FLAGS " ${_directory_definitions}") + LIST(APPEND _FLAGS ${_directory_flags}) + LIST(APPEND _FLAGS ${_directory_definitions}) ENDIF() # Format definitions IF(MSVC) # Fix path with space SEPARATE_ARGUMENTS(_FLAGS UNIX_COMMAND "${_FLAGS}") - ELSE() - STRING(REGEX REPLACE " +" " " _FLAGS ${_FLAGS}) - SEPARATE_ARGUMENTS(_FLAGS) ENDIF() + # Already in list form and items may contain non-leading spaces that should not be split on + LIST(INSERT _FLAGS 0 "${GLOBAL_DEFINITIONS}") + IF(CLANG) # Determining all architectures and get common flags SET(_ARCH_NEXT) @@ -236,6 +247,7 @@ MACRO(PCH_SET_COMPILE_FLAGS _target) ENDIF() IF(PCH_FLAGS) + LIST(REMOVE_ITEM PCH_FLAGS "") LIST(REMOVE_DUPLICATES PCH_FLAGS) ENDIF() ENDMACRO() @@ -247,16 +259,16 @@ MACRO(GET_PDB_FILENAME _out_filename _target) SET(_targetOutput ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) ELSEIF(${_targetType} STREQUAL STATIC_LIBRARY) SET(_targetOutput ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}) - ELSE(${_targetType} STREQUAL EXECUTABLE) + ELSE() SET(_targetOutput ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) - ENDIF(${_targetType} STREQUAL EXECUTABLE) + ENDIF() # determine target postfix STRING(TOUPPER "${CMAKE_BUILD_TYPE}_POSTFIX" _postfix_var_name) GET_TARGET_PROPERTY(_targetPostfix ${_target} ${_postfix_var_name}) IF(${_targetPostfix} MATCHES NOTFOUND) SET(_targetPostfix "") - ENDIF(${_targetPostfix} MATCHES NOTFOUND) + ENDIF() SET(${_out_filename} "${_targetOutput}/${_target}${_targetPostfix}.pdb") ENDMACRO(GET_PDB_FILENAME) diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake index 941351315..d311a7747 100644 --- a/code/CMakeModules/nel.cmake +++ b/code/CMakeModules/nel.cmake @@ -4,7 +4,7 @@ SET(CMAKE_TRY_COMPILE_CONFIGURATION "Release") # Force Release configuration by default IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) -ENDIF(NOT CMAKE_BUILD_TYPE) +ENDIF() # Declare CMAKE_CONFIGURATION_TYPES before PROJECT SET(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) @@ -17,7 +17,7 @@ MACRO(NL_GEN_PC name) IF(NOT WIN32 AND WITH_INSTALL_LIBRARIES) CONFIGURE_FILE(${name}.in "${CMAKE_CURRENT_BINARY_DIR}/${name}") INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${name}" DESTINATION ${NL_LIB_PREFIX}/pkgconfig) - ENDIF(NOT WIN32 AND WITH_INSTALL_LIBRARIES) + ENDIF() ENDMACRO(NL_GEN_PC) ### @@ -26,9 +26,9 @@ ENDMACRO(NL_GEN_PC) MACRO(NL_TARGET_LIB name) IF(WITH_STATIC) ADD_LIBRARY(${name} STATIC ${ARGN}) - ELSE(WITH_STATIC) + ELSE() ADD_LIBRARY(${name} SHARED ${ARGN}) - ENDIF(WITH_STATIC) + ENDIF() ENDMACRO(NL_TARGET_LIB) ### @@ -37,9 +37,9 @@ ENDMACRO(NL_TARGET_LIB) MACRO(NL_TARGET_DRIVER name) IF(WITH_STATIC_DRIVERS) ADD_LIBRARY(${name} STATIC ${ARGN}) - ELSE(WITH_STATIC_DRIVERS) + ELSE() ADD_LIBRARY(${name} MODULE ${ARGN}) - ENDIF(WITH_STATIC_DRIVERS) + ENDIF() ENDMACRO(NL_TARGET_DRIVER) ### @@ -64,16 +64,35 @@ MACRO(NL_DEFAULT_PROPS name label) VERSION ${NL_VERSION} SOVERSION ${NL_VERSION_MAJOR}) IF(NL_LIB_PREFIX) SET_TARGET_PROPERTIES(${name} PROPERTIES INSTALL_NAME_DIR ${NL_LIB_PREFIX}) - ENDIF(NL_LIB_PREFIX) - ENDIF(${type} STREQUAL SHARED_LIBRARY) + ENDIF() + ENDIF() IF(${type} STREQUAL EXECUTABLE AND WIN32 AND NOT MINGW) + # check if using a GUI + GET_TARGET_PROPERTY(_VALUE ${name} WIN32_EXECUTABLE) + + IF(TARGET_X64) + # Target Windows XP 64 bits + SET(_SUBSYSTEM_VERSION "5.02") + ELSE() + # Target Windows XP + SET(_SUBSYSTEM_VERSION "5.01") + ENDIF() + + IF(_VALUE) + # GUI + SET(_SUBSYSTEM "WINDOWS") + ELSE() + # Console + SET(_SUBSYSTEM "CONSOLE") + ENDIF() + SET_TARGET_PROPERTIES(${name} PROPERTIES VERSION ${NL_VERSION} SOVERSION ${NL_VERSION_MAJOR} COMPILE_FLAGS "/GA" - LINK_FLAGS "/VERSION:${NL_VERSION_MAJOR}.${NL_VERSION_MINOR}") - ENDIF(${type} STREQUAL EXECUTABLE AND WIN32 AND NOT MINGW) + LINK_FLAGS "/VERSION:${NL_VERSION_MAJOR}.${NL_VERSION_MINOR} /SUBSYSTEM:${_SUBSYSTEM},${_SUBSYSTEM_VERSION}") + ENDIF() ENDMACRO(NL_DEFAULT_PROPS) ### @@ -83,7 +102,7 @@ ENDMACRO(NL_DEFAULT_PROPS) MACRO(NL_ADD_LIB_SUFFIX name) IF(WIN32) SET_TARGET_PROPERTIES(${name} PROPERTIES DEBUG_POSTFIX "_d" RELEASE_POSTFIX "_r") - ENDIF(WIN32) + ENDIF() ENDMACRO(NL_ADD_LIB_SUFFIX) ### @@ -95,10 +114,10 @@ MACRO(NL_ADD_RUNTIME_FLAGS name) # SET_TARGET_PROPERTIES(${name} PROPERTIES # LINK_FLAGS_DEBUG "${CMAKE_LINK_FLAGS_DEBUG}" # LINK_FLAGS_RELEASE "${CMAKE_LINK_FLAGS_RELEASE}") - ENDIF(WIN32) + ENDIF() IF(WITH_STLPORT) TARGET_LINK_LIBRARIES(${name} ${STLPORT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - ENDIF(WITH_STLPORT) + ENDIF() ENDMACRO(NL_ADD_RUNTIME_FLAGS) MACRO(NL_ADD_STATIC_VID_DRIVERS name) @@ -106,25 +125,25 @@ MACRO(NL_ADD_STATIC_VID_DRIVERS name) IF(WIN32) IF(WITH_DRIVER_DIRECT3D) TARGET_LINK_LIBRARIES(${name} nel_drv_direct3d_win) - ENDIF(WITH_DRIVER_DIRECT3D) - ENDIF(WIN32) + ENDIF() + ENDIF() IF(WITH_DRIVER_OPENGL) IF(WIN32) TARGET_LINK_LIBRARIES(${name} nel_drv_opengl_win) - ELSE(WIN32) + ELSE() TARGET_LINK_LIBRARIES(${name} nel_drv_opengl) - ENDIF(WIN32) - ENDIF(WITH_DRIVER_OPENGL) + ENDIF() + ENDIF() IF(WITH_DRIVER_OPENGLES) IF(WIN32) TARGET_LINK_LIBRARIES(${name} nel_drv_opengles_win) - ELSE(WIN32) + ELSE() TARGET_LINK_LIBRARIES(${name} nel_drv_opengles) - ENDIF(WIN32) - ENDIF(WITH_DRIVER_OPENGLES) - ENDIF(WITH_STATIC_DRIVERS) + ENDIF() + ENDIF() + ENDIF() ENDMACRO(NL_ADD_STATIC_VID_DRIVERS) MACRO(NL_ADD_STATIC_SND_DRIVERS name) @@ -132,30 +151,30 @@ MACRO(NL_ADD_STATIC_SND_DRIVERS name) IF(WIN32) IF(WITH_DRIVER_DSOUND) TARGET_LINK_LIBRARIES(${name} nel_drv_dsound_win) - ENDIF(WITH_DRIVER_DSOUND) + ENDIF() IF(WITH_DRIVER_XAUDIO2) TARGET_LINK_LIBRARIES(${name} nel_drv_xaudio2_win) - ENDIF(WITH_DRIVER_XAUDIO2) + ENDIF() IF(WITH_DRIVER_OPENAL) TARGET_LINK_LIBRARIES(${name} nel_drv_openal_win) - ENDIF(WITH_DRIVER_OPENAL) + ENDIF() IF(WITH_DRIVER_FMOD) TARGET_LINK_LIBRARIES(${name} nel_drv_fmod_win) - ENDIF(WITH_DRIVER_FMOD) - ELSE(WIN32) + ENDIF() + ELSE() IF(WITH_DRIVER_OPENAL) TARGET_LINK_LIBRARIES(${name} nel_drv_openal) - ENDIF(WITH_DRIVER_OPENAL) + ENDIF() IF(WITH_DRIVER_FMOD) TARGET_LINK_LIBRARIES(${name} nel_drv_fmod) - ENDIF(WITH_DRIVER_FMOD) - ENDIF(WIN32) + ENDIF() + ENDIF() - ENDIF(WITH_STATIC_DRIVERS) + ENDIF() ENDMACRO(NL_ADD_STATIC_SND_DRIVERS) ### @@ -173,14 +192,14 @@ Remove the CMakeCache.txt file and try again from another folder, e.g.: cd cmake cmake .. ") - ENDIF(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) + ENDIF() ENDMACRO(CHECK_OUT_OF_SOURCE) MACRO(NL_SETUP_DEFAULT_OPTIONS) IF(WITH_QT) OPTION(WITH_STUDIO "Build Core Studio" OFF ) - ENDIF(WITH_QT) + ENDIF() ### # Features @@ -194,30 +213,30 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS) # Default to static building on Windows. IF(WIN32) OPTION(WITH_STATIC "With static libraries." ON ) - ELSE(WIN32) + ELSE() OPTION(WITH_STATIC "With static libraries." OFF) - ENDIF(WIN32) + ENDIF() IF (WITH_STATIC) OPTION(WITH_STATIC_LIBXML2 "With static libxml2" ON ) - ELSE(WITH_STATIC) + ELSE() OPTION(WITH_STATIC_LIBXML2 "With static libxml2" OFF) - ENDIF(WITH_STATIC) + ENDIF() IF (WITH_STATIC) OPTION(WITH_STATIC_CURL "With static curl" ON ) - ELSE(WITH_STATIC) + ELSE() OPTION(WITH_STATIC_CURL "With static curl" OFF) - ENDIF(WITH_STATIC) + ENDIF() IF(APPLE) OPTION(WITH_LIBXML2_ICONV "With libxml2 using iconv" ON ) - ELSE(APPLE) + ELSE() OPTION(WITH_LIBXML2_ICONV "With libxml2 using iconv" OFF) - ENDIF(APPLE) + ENDIF() OPTION(WITH_STATIC_DRIVERS "With static drivers." OFF) IF(WIN32) OPTION(WITH_EXTERNAL "With provided external." ON ) - ELSE(WIN32) + ELSE() OPTION(WITH_EXTERNAL "With provided external." OFF) - ENDIF(WIN32) + ENDIF() OPTION(WITH_STATIC_EXTERNAL "With static external libraries" OFF) IF(UNIX AND NOT APPLE) OPTION(WITH_UNIX_STRUCTURE "Use UNIX structure (bin, include, lib)" ON ) @@ -237,9 +256,9 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS) IF(WIN32 AND MFC_FOUND) OPTION(WITH_MFC "With MFC Support" ON ) - ELSE(WIN32 AND MFC_FOUND) + ELSE() OPTION(WITH_MFC "With MFC Support" OFF) - ENDIF(WIN32 AND MFC_FOUND) + ENDIF() ### # Optional support @@ -304,7 +323,7 @@ MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS) IF(NOT MSVC) OPTION(WITH_GCC_FPMATH_BOTH "With GCC -mfpmath=both" OFF) - ENDIF(NOT MSVC) + ENDIF() ENDMACRO(NL_SETUP_NEL_DEFAULT_OPTIONS) MACRO(NL_SETUP_NELNS_DEFAULT_OPTIONS) @@ -334,6 +353,7 @@ MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS) OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF) OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF) OPTION(WITH_RYZOM_STEAM "Enable Steam features" OFF) + OPTION(WITH_RYZOM_SANDBOX "Enable Sandbox under OS X" OFF) ENDMACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS) MACRO(NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS) @@ -360,15 +380,15 @@ MACRO(NL_SETUP_BUILD) IF(CMAKE_BUILD_TYPE MATCHES "Debug") SET(NL_BUILD_MODE "NL_DEBUG") - ELSE(CMAKE_BUILD_TYPE MATCHES "Debug") + ELSE() IF(CMAKE_BUILD_TYPE MATCHES "Release") SET(NL_BUILD_MODE "NL_RELEASE") - ELSE(CMAKE_BUILD_TYPE MATCHES "Release") + ELSE() SET(NL_BUILD_MODE "NL_RELEASE") # enforce release mode if it's neither Debug nor Release SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) - ENDIF(CMAKE_BUILD_TYPE MATCHES "Release") - ENDIF(CMAKE_BUILD_TYPE MATCHES "Debug") + ENDIF() + ENDIF() SET(HOST_CPU ${CMAKE_HOST_SYSTEM_PROCESSOR}) @@ -376,35 +396,35 @@ MACRO(NL_SETUP_BUILD) SET(HOST_CPU "x86_64") ELSEIF(HOST_CPU MATCHES "i.86") SET(HOST_CPU "x86") - ENDIF(HOST_CPU MATCHES "(amd|AMD)64") + ENDIF() # Determine target CPU # If not specified, use the same CPU as host IF(NOT TARGET_CPU) SET(TARGET_CPU ${CMAKE_SYSTEM_PROCESSOR}) - ENDIF(NOT TARGET_CPU) + ENDIF() IF(TARGET_CPU MATCHES "(amd|AMD)64") SET(TARGET_CPU "x86_64") ELSEIF(TARGET_CPU MATCHES "i.86") SET(TARGET_CPU "x86") - ENDIF(TARGET_CPU MATCHES "(amd|AMD)64") + ENDIF() IF(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") SET(CLANG ON) MESSAGE(STATUS "Using Clang compiler") - ENDIF(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") + ENDIF() IF(CMAKE_GENERATOR MATCHES "Xcode") SET(XCODE ON) MESSAGE(STATUS "Generating Xcode project") - ENDIF(CMAKE_GENERATOR MATCHES "Xcode") + ENDIF() IF(CMAKE_GENERATOR MATCHES "NMake") SET(NMAKE ON) MESSAGE(STATUS "Generating NMake project") - ENDIF(CMAKE_GENERATOR MATCHES "NMake") + ENDIF() # If target and host CPU are the same IF("${HOST_CPU}" STREQUAL "${TARGET_CPU}" AND NOT CMAKE_CROSSCOMPILING) @@ -413,24 +433,24 @@ MACRO(NL_SETUP_BUILD) IF(NOT CMAKE_SIZEOF_VOID_P) INCLUDE (CheckTypeSize) CHECK_TYPE_SIZE("void*" CMAKE_SIZEOF_VOID_P) - ENDIF(NOT CMAKE_SIZEOF_VOID_P) + ENDIF() # Using 32 or 64 bits libraries IF(CMAKE_SIZEOF_VOID_P EQUAL 8) SET(TARGET_CPU "x86_64") - ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) + ELSE() SET(TARGET_CPU "x86") - ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8) + ENDIF() ELSEIF(HOST_CPU MATCHES "arm") SET(TARGET_CPU "arm") - ELSE(HOST_CPU MATCHES "x86") + ELSE() SET(TARGET_CPU "unknown") MESSAGE(STATUS "Unknown architecture: ${HOST_CPU}") - ENDIF(HOST_CPU MATCHES "x86") + ENDIF() # TODO: add checks for PPC - ELSE("${HOST_CPU}" STREQUAL "${TARGET_CPU}" AND NOT CMAKE_CROSSCOMPILING) + ELSE() MESSAGE(STATUS "Compiling on ${HOST_CPU} for ${TARGET_CPU}") - ENDIF("${HOST_CPU}" STREQUAL "${TARGET_CPU}" AND NOT CMAKE_CROSSCOMPILING) + ENDIF() # Use values from environment variables SET(PLATFORM_CFLAGS "$ENV{CFLAGS} $ENV{CPPFLAGS} ${PLATFORM_CFLAGS}") @@ -470,36 +490,36 @@ MACRO(NL_SETUP_BUILD) SET(TARGET_ARM 1) ELSEIF(TARGET_CPU STREQUAL "mips") SET(TARGET_MIPS 1) - ENDIF(TARGET_CPU STREQUAL "x86_64") + ENDIF() IF(TARGET_ARM) IF(TARGET_ARMV7S) ADD_PLATFORM_FLAGS("-DHAVE_ARMV7S") - ENDIF(TARGET_ARMV7S) + ENDIF() IF(TARGET_ARMV7) ADD_PLATFORM_FLAGS("-DHAVE_ARMV7") - ENDIF(TARGET_ARMV7) + ENDIF() IF(TARGET_ARMV6) ADD_PLATFORM_FLAGS("-HAVE_ARMV6") - ENDIF(TARGET_ARMV6) + ENDIF() ADD_PLATFORM_FLAGS("-DHAVE_ARM") - ENDIF(TARGET_ARM) + ENDIF() IF(TARGET_X86) ADD_PLATFORM_FLAGS("-DHAVE_X86") - ENDIF(TARGET_X86) + ENDIF() IF(TARGET_X64) ADD_PLATFORM_FLAGS("-DHAVE_X64 -DHAVE_X86_64") - ENDIF(TARGET_X64) + ENDIF() IF(TARGET_MIPS) ADD_PLATFORM_FLAGS("-DHAVE_MIPS") - ENDIF(TARGET_MIPS) - ENDIF(NOT CMAKE_OSX_ARCHITECTURES) + ENDIF() + ENDIF() # Fix library paths suffixes for Debian MultiArch IF(LIBRARY_ARCHITECTURE) @@ -508,22 +528,22 @@ MACRO(NL_SETUP_BUILD) SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /lib64 /usr/lib64) ELSEIF(TARGET_X86) SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /lib32 /usr/lib32) - ENDIF(TARGET_X64) - ENDIF(LIBRARY_ARCHITECTURE) + ENDIF() + ENDIF() IF(APPLE AND NOT IOS) SET(CMAKE_INCLUDE_PATH /opt/local/include ${CMAKE_INCLUDE_PATH}) SET(CMAKE_LIBRARY_PATH /opt/local/lib ${CMAKE_LIBRARY_PATH}) - ENDIF(APPLE AND NOT IOS) + ENDIF() IF(WITH_LOGGING) ADD_PLATFORM_FLAGS("-DENABLE_LOGS") - ENDIF(WITH_LOGGING) + ENDIF() IF(MSVC) IF(MSVC_VERSION EQUAL "1700" AND NOT MSVC11) SET(MSVC11 ON) - ENDIF(MSVC_VERSION EQUAL "1700" AND NOT MSVC11) + ENDIF() # Ignore default include paths ADD_PLATFORM_FLAGS("/X") @@ -564,9 +584,9 @@ MACRO(NL_SETUP_BUILD) SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}") # without inlining it's unusable, use custom optimizations again SET(DEBUG_CFLAGS "/Od /Ob1 ${DEBUG_CFLAGS}") - ELSE(MSVC12) + ELSE() MESSAGE(FATAL_ERROR "Can't determine compiler version ${MSVC_VERSION}") - ENDIF(MSVC14) + ENDIF() ADD_PLATFORM_FLAGS("/D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DWIN32 /D_WINDOWS /wd4250") @@ -575,10 +595,10 @@ MACRO(NL_SETUP_BUILD) ADD_PLATFORM_FLAGS("/D_WIN64") # Fix a compilation error for some big C++ files SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} /bigobj") - ELSE(TARGET_X64) + ELSE() # Allows 32 bits applications to use 3 GB of RAM SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /LARGEADDRESSAWARE") - ENDIF(TARGET_X64) + ENDIF() # Exceptions are only set for C++ SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} /EHa") @@ -586,9 +606,9 @@ MACRO(NL_SETUP_BUILD) IF(WITH_SYMBOLS) SET(NL_RELEASE_CFLAGS "/Zi ${NL_RELEASE_CFLAGS}") SET(NL_RELEASE_LINKFLAGS "/DEBUG ${NL_RELEASE_LINKFLAGS}") - ELSE(WITH_SYMBOLS) + ELSE() SET(NL_RELEASE_LINKFLAGS "/RELEASE ${NL_RELEASE_LINKFLAGS}") - ENDIF(WITH_SYMBOLS) + ENDIF() SET(NL_DEBUG_CFLAGS "/Zi /MDd /RTC1 /D_DEBUG ${DEBUG_CFLAGS} ${NL_DEBUG_CFLAGS}") SET(NL_RELEASE_CFLAGS "/MD /DNDEBUG ${RELEASE_CFLAGS} ${NL_RELEASE_CFLAGS}") @@ -597,25 +617,25 @@ MACRO(NL_SETUP_BUILD) IF(WITH_WARNINGS) SET(DEBUG_CFLAGS "/W4 ${DEBUG_CFLAGS}") - ELSE(WITH_WARNINGS) + ELSE() SET(DEBUG_CFLAGS "/W3 ${DEBUG_CFLAGS}") - ENDIF(WITH_WARNINGS) - ELSE(MSVC) + ENDIF() + ELSE() IF(WIN32) ADD_PLATFORM_FLAGS("-DWIN32 -D_WIN32") IF(CLANG) ADD_PLATFORM_FLAGS("-nobuiltininc") - ENDIF(CLANG) - ENDIF(WIN32) + ENDIF() + ENDIF() IF(WITH_SSE3) ADD_PLATFORM_FLAGS("-msse3") - ENDIF(WITH_SSE3) + ENDIF() IF(WITH_GCC_FPMATH_BOTH) ADD_PLATFORM_FLAGS("-mfpmath=both") - ENDIF(WITH_GCC_FPMATH_BOTH) + ENDIF() IF(APPLE) IF(NOT XCODE) @@ -650,97 +670,97 @@ MACRO(NL_SETUP_BUILD) SET(_ARCHS "${_ARCHS} mips") SET(TARGET_MIPS 1) MATH(EXPR TARGETS_COUNT "${TARGETS_COUNT}+1") - ELSE(_ARCH STREQUAL "i386") + ELSE() SET(_ARCHS "${_ARCHS} unknwon(${_ARCH})") - ENDIF(_ARCH STREQUAL "i386") + ENDIF() ENDFOREACH(_ARCH) MESSAGE(STATUS "Compiling under Mac OS X for ${TARGETS_COUNT} architectures: ${_ARCHS}") - ELSE(CMAKE_OSX_ARCHITECTURES) + ELSE() SET(TARGETS_COUNT 0) - ENDIF(CMAKE_OSX_ARCHITECTURES) + ENDIF() IF(TARGETS_COUNT EQUAL 1) IF(TARGET_ARM) IF(TARGET_ARMV7S) ADD_PLATFORM_FLAGS("-arch armv7s -DHAVE_ARMV7S") - ENDIF(TARGET_ARMV7S) + ENDIF() IF(TARGET_ARMV7) ADD_PLATFORM_FLAGS("-arch armv7 -DHAVE_ARMV7") - ENDIF(TARGET_ARMV7) + ENDIF() IF(TARGET_ARMV6) ADD_PLATFORM_FLAGS("-arch armv6 -DHAVE_ARMV6") - ENDIF(TARGET_ARMV6) + ENDIF() IF(TARGET_ARMV5) ADD_PLATFORM_FLAGS("-arch armv5 -DHAVE_ARMV5") - ENDIF(TARGET_ARMV5) + ENDIF() ADD_PLATFORM_FLAGS("-mthumb -DHAVE_ARM") - ENDIF(TARGET_ARM) + ENDIF() IF(TARGET_X64) ADD_PLATFORM_FLAGS("-arch x86_64 -DHAVE_X64 -DHAVE_X86_64 -DHAVE_X86") ELSEIF(TARGET_X86) ADD_PLATFORM_FLAGS("-arch i386 -DHAVE_X86") - ENDIF(TARGET_X64) + ENDIF() IF(TARGET_MIPS) ADD_PLATFORM_FLAGS("-arch mips -DHAVE_MIPS") - ENDIF(TARGET_MIPS) + ENDIF() ELSEIF(TARGETS_COUNT EQUAL 0) # Not using CMAKE_OSX_ARCHITECTURES, HAVE_XXX already defined before IF(TARGET_ARM) IF(TARGET_ARMV7S) ADD_PLATFORM_FLAGS("-arch armv7s") - ENDIF(TARGET_ARMV7S) + ENDIF() IF(TARGET_ARMV7) ADD_PLATFORM_FLAGS("-arch armv7") - ENDIF(TARGET_ARMV7) + ENDIF() IF(TARGET_ARMV6) ADD_PLATFORM_FLAGS("-arch armv6") - ENDIF(TARGET_ARMV6) + ENDIF() IF(TARGET_ARMV5) ADD_PLATFORM_FLAGS("-arch armv5") - ENDIF(TARGET_ARMV5) + ENDIF() ADD_PLATFORM_FLAGS("-mthumb") - ENDIF(TARGET_ARM) + ENDIF() IF(TARGET_X64) ADD_PLATFORM_FLAGS("-arch x86_64") ELSEIF(TARGET_X86) ADD_PLATFORM_FLAGS("-arch i386") - ENDIF(TARGET_X64) + ENDIF() IF(TARGET_MIPS) ADD_PLATFORM_FLAGS("-arch mips") - ENDIF(TARGET_MIPS) - ELSE(TARGETS_COUNT EQUAL 1) + ENDIF() + ELSE() IF(TARGET_ARMV6) ADD_PLATFORM_FLAGS("-Xarch_armv6 -mthumb -Xarch_armv6 -DHAVE_ARM -Xarch_armv6 -DHAVE_ARMV6") - ENDIF(TARGET_ARMV6) + ENDIF() IF(TARGET_ARMV7) ADD_PLATFORM_FLAGS("-Xarch_armv7 -mthumb -Xarch_armv7 -DHAVE_ARM -Xarch_armv7 -DHAVE_ARMV7") - ENDIF(TARGET_ARMV7) + ENDIF() IF(TARGET_X86) ADD_PLATFORM_FLAGS("-Xarch_i386 -DHAVE_X86") - ENDIF(TARGET_X86) + ENDIF() IF(TARGET_X64) ADD_PLATFORM_FLAGS("-Xarch_x86_64 -DHAVE_X64 -Xarch_x86_64 -DHAVE_X86_64") - ENDIF(TARGET_X64) + ENDIF() IF(TARGET_MIPS) ADD_PLATFORM_FLAGS("-Xarch_mips -DHAVE_MIPS") - ENDIF(TARGET_MIPS) - ENDIF(TARGETS_COUNT EQUAL 1) + ENDIF() + ENDIF() IF(IOS) SET(CMAKE_OSX_SYSROOT "" CACHE PATH "" FORCE) @@ -750,73 +770,73 @@ MACRO(NL_SETUP_BUILD) CONVERT_VERSION_NUMBER(${IOS_VERSION_MAJOR} ${IOS_VERSION_MINOR} ${IOS_VERSION_PATCH} IOS_VERSION_NUMBER) ADD_PLATFORM_FLAGS("-D__IPHONE_OS_VERSION_MIN_REQUIRED=${IOS_VERSION_NUMBER}") - ENDIF(IOS_VERSION) + ENDIF() IF(CMAKE_IOS_SYSROOT) IF(TARGET_ARMV7S) IF(TARGETS_COUNT GREATER 1) SET(XARCH "-Xarch_armv7s ") - ENDIF(TARGETS_COUNT GREATER 1) + ENDIF() ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}") SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}") - ENDIF(TARGET_ARMV7S) + ENDIF() IF(TARGET_ARMV7) IF(TARGETS_COUNT GREATER 1) SET(XARCH "-Xarch_armv7 ") - ENDIF(TARGETS_COUNT GREATER 1) + ENDIF() ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}") SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}") - ENDIF(TARGET_ARMV7) + ENDIF() IF(TARGET_ARMV6) IF(TARGETS_COUNT GREATER 1) SET(XARCH "-Xarch_armv6 ") - ENDIF(TARGETS_COUNT GREATER 1) + ENDIF() ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}") SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}") - ENDIF(TARGET_ARMV6) - ENDIF(CMAKE_IOS_SYSROOT) + ENDIF() + ENDIF() IF(CMAKE_IOS_SIMULATOR_SYSROOT AND TARGET_X86) IF(TARGETS_COUNT GREATER 1) SET(XARCH "-Xarch_i386 ") - ENDIF(TARGETS_COUNT GREATER 1) + ENDIF() ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SIMULATOR_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-mios-simulator-version-min=${IOS_VERSION}") IF(CMAKE_OSX_DEPLOYMENT_TARGET) SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-macosx_version_min,${CMAKE_OSX_DEPLOYMENT_TARGET}") - ENDIF(CMAKE_OSX_DEPLOYMENT_TARGET) - ENDIF(CMAKE_IOS_SIMULATOR_SYSROOT AND TARGET_X86) - ELSE(IOS) + ENDIF() + ENDIF() + ELSE() # Always force -mmacosx-version-min to override environement variable IF(CMAKE_OSX_DEPLOYMENT_TARGET) SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-macosx_version_min,${CMAKE_OSX_DEPLOYMENT_TARGET}") - ENDIF(CMAKE_OSX_DEPLOYMENT_TARGET) - ENDIF(IOS) + ENDIF() + ENDIF() SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-headerpad_max_install_names") IF(HAVE_FLAG_SEARCH_PATHS_FIRST) SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-search_paths_first") - ENDIF(HAVE_FLAG_SEARCH_PATHS_FIRST) - ENDIF(NOT XCODE) - ELSE(APPLE) + ENDIF() + ENDIF() + ELSE() IF(HOST_CPU STREQUAL "x86_64" AND TARGET_CPU STREQUAL "x86") ADD_PLATFORM_FLAGS("-m32 -march=i686") - ENDIF(HOST_CPU STREQUAL "x86_64" AND TARGET_CPU STREQUAL "x86") + ENDIF() IF(HOST_CPU STREQUAL "x86" AND TARGET_CPU STREQUAL "x86_64") ADD_PLATFORM_FLAGS("-m64") - ENDIF(HOST_CPU STREQUAL "x86" AND TARGET_CPU STREQUAL "x86_64") - ENDIF(APPLE) + ENDIF() + ENDIF() ADD_PLATFORM_FLAGS("-D_REENTRANT -fno-strict-aliasing") @@ -826,11 +846,11 @@ MACRO(NL_SETUP_BUILD) IF(WITH_COVERAGE) ADD_PLATFORM_FLAGS("-fprofile-arcs -ftest-coverage") - ENDIF(WITH_COVERAGE) + ENDIF() IF(WITH_WARNINGS) ADD_PLATFORM_FLAGS("-Wall -W -Wpointer-arith -Wsign-compare -Wno-deprecated-declarations -Wno-multichar -Wno-unused") - ENDIF(WITH_WARNINGS) + ENDIF() IF(ANDROID) ADD_PLATFORM_FLAGS("--sysroot=${PLATFORM_ROOT}") @@ -847,17 +867,17 @@ MACRO(NL_SETUP_BUILD) SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -march=armv7-a -Wl,--fix-cortex-a8") ELSEIF(TARGET_ARMV5) ADD_PLATFORM_FLAGS("-march=armv5te -mtune=xscale -msoft-float") - ENDIF(TARGET_ARMV7) + ENDIF() SET(TARGET_THUMB ON) IF(TARGET_THUMB) ADD_PLATFORM_FLAGS("-mthumb -fno-strict-aliasing -finline-limit=64") SET(DEBUG_CFLAGS "${DEBUG_CFLAGS} -marm") - ELSE(TARGET_THUMB) + ELSE() ADD_PLATFORM_FLAGS("-funswitch-loops -finline-limit=300") SET(DEBUG_CFLAGS "${DEBUG_CFLAGS} -fno-strict-aliasing") SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} -fstrict-aliasing") - ENDIF(TARGET_THUMB) + ENDIF() ELSEIF(TARGET_X86) # Optimizations for Intel Atom ADD_PLATFORM_FLAGS("-march=i686 -mtune=atom -mstackrealign -msse3 -mfpmath=sse -m32 -flto -ffast-math -funroll-loops") @@ -867,39 +887,39 @@ MACRO(NL_SETUP_BUILD) ELSEIF(TARGET_MIPS) ADD_PLATFORM_FLAGS("-fpic -finline-functions -fmessage-length=0 -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -fno-strict-aliasing") SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} -funswitch-loops -finline-limit=300") - ENDIF(TARGET_ARM) + ENDIF() SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now") SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -L${PLATFORM_ROOT}/usr/lib") - ENDIF(ANDROID) + ENDIF() IF(APPLE) ADD_PLATFORM_FLAGS("-gdwarf-2 -D_DARWIN_UNLIMITED_STREAMS") - ENDIF(APPLE) + ENDIF() # Fix "relocation R_X86_64_32 against.." error on x64 platforms IF(TARGET_X64 AND WITH_STATIC AND NOT WITH_STATIC_DRIVERS AND NOT MINGW) ADD_PLATFORM_FLAGS("-fPIC") - ENDIF(TARGET_X64 AND WITH_STATIC AND NOT WITH_STATIC_DRIVERS AND NOT MINGW) + ENDIF() SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} -ftemplate-depth-48") IF(NOT APPLE) SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--no-undefined -Wl,--as-needed") - ENDIF(NOT APPLE) + ENDIF() IF(WITH_SYMBOLS) SET(NL_RELEASE_CFLAGS "${NL_RELEASE_CFLAGS} -g") - ELSE(WITH_SYMBOLS) + ELSE() IF(APPLE) SET(NL_RELEASE_LINKFLAGS "-Wl,-dead_strip ${NL_RELEASE_LINKFLAGS}") - ELSE(APPLE) + ELSE() SET(NL_RELEASE_LINKFLAGS "-Wl,-s ${NL_RELEASE_LINKFLAGS}") - ENDIF(APPLE) - ENDIF(WITH_SYMBOLS) + ENDIF() + ENDIF() SET(NL_DEBUG_CFLAGS "-g -DNL_DEBUG -D_DEBUG ${NL_DEBUG_CFLAGS}") SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -DNDEBUG -O3 ${NL_RELEASE_CFLAGS}") - ENDIF(MSVC) + ENDIF() ENDMACRO(NL_SETUP_BUILD) MACRO(NL_SETUP_BUILD_FLAGS) @@ -934,7 +954,7 @@ MACRO(NL_MAKE_ABSOLUTE_PREFIX NAME_RELATIVE NAME_ABSOLUTE) ELSE() SET(${NAME_ABSOLUTE} ${${NAME_RELATIVE}}) ENDIF() - ENDIF(IS_ABSOLUTE "${${NAME_RELATIVE}}") + ENDIF() ENDMACRO(NL_MAKE_ABSOLUTE_PREFIX) MACRO(NL_SETUP_PREFIX_PATHS) @@ -1011,7 +1031,7 @@ MACRO(RYZOM_SETUP_PREFIX_PATHS) ELSE() SET(RYZOM_ETC_PREFIX "." CACHE PATH "Installation path for configurations") ENDIF() - ENDIF(NOT RYZOM_ETC_PREFIX) + ENDIF() NL_MAKE_ABSOLUTE_PREFIX(RYZOM_ETC_PREFIX RYZOM_ETC_ABSOLUTE_PREFIX) ## Allow override of install_prefix/share path. @@ -1051,7 +1071,7 @@ MACRO(RYZOM_SETUP_PREFIX_PATHS) ELSE() SET(RYZOM_LIB_PREFIX "lib" CACHE PATH "Installation path for libraries.") ENDIF() - ENDIF(NOT RYZOM_LIB_PREFIX) + ENDIF() NL_MAKE_ABSOLUTE_PREFIX(RYZOM_LIB_PREFIX RYZOM_LIB_ABSOLUTE_PREFIX) ## Allow override of install_prefix/games path. @@ -1069,7 +1089,7 @@ ENDMACRO(RYZOM_SETUP_PREFIX_PATHS) MACRO(SETUP_EXTERNAL) IF(WITH_EXTERNAL) FIND_PACKAGE(External REQUIRED) - ENDIF(WITH_EXTERNAL) + ENDIF() IF(WIN32) FIND_PACKAGE(External REQUIRED) @@ -1078,8 +1098,8 @@ MACRO(SETUP_EXTERNAL) IF(DEFINED BOOST_DIR) SET(BOOST_INCLUDEDIR ${BOOST_DIR}/include) SET(BOOST_LIBRARYDIR ${BOOST_DIR}/lib) - ENDIF(DEFINED BOOST_DIR) - ELSE(WIN32) + ENDIF() + ELSE() FIND_PACKAGE(External QUIET) IF(APPLE) @@ -1088,28 +1108,28 @@ MACRO(SETUP_EXTERNAL) ELSE() SET(CMAKE_FIND_LIBRARY_SUFFIXES .dylib .so .a) ENDIF() - ELSE(APPLE) + ELSE() IF(WITH_STATIC_EXTERNAL) SET(CMAKE_FIND_LIBRARY_SUFFIXES .a .so) ELSE() SET(CMAKE_FIND_LIBRARY_SUFFIXES .so .a) ENDIF() - ENDIF(APPLE) - ENDIF(WIN32) + ENDIF() + ENDIF() # Android and iOS have pthread IF(ANDROID OR IOS) SET(CMAKE_USE_PTHREADS_INIT 1) SET(Threads_FOUND TRUE) - ELSE(ANDROID OR IOS) + ELSE() FIND_PACKAGE(Threads REQUIRED) # TODO: replace all -l by absolute path to in CMAKE_THREAD_LIBS_INIT - ENDIF(ANDROID OR IOS) + ENDIF() IF(WITH_STLPORT) FIND_PACKAGE(STLport REQUIRED) INCLUDE_DIRECTORIES(${STLPORT_INCLUDE_DIR}) - ENDIF(WITH_STLPORT) + ENDIF() IF(WIN32) # Must include DXSDK before WINSDK @@ -1117,10 +1137,10 @@ MACRO(SETUP_EXTERNAL) # IF(DXSDK_INCLUDE_DIR) # INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR}) # ENDIF() - ENDIF(WIN32) + ENDIF() IF(MSVC) FIND_PACKAGE(MSVC REQUIRED) FIND_PACKAGE(WindowsSDK REQUIRED) - ENDIF(MSVC) + ENDIF() ENDMACRO(SETUP_EXTERNAL) diff --git a/code/nel/CMakeLists.txt b/code/nel/CMakeLists.txt index b538feb4d..0f1d11579 100644 --- a/code/nel/CMakeLists.txt +++ b/code/nel/CMakeLists.txt @@ -2,23 +2,23 @@ PROJECT(NeL CXX C) IF(WITH_STATIC_DRIVERS) ADD_DEFINITIONS(-DNL_STATIC) -ENDIF(WITH_STATIC_DRIVERS) +ENDIF() IF(WIN32) # On Win32 we can also build the MAX plugins. IF(WITH_NEL_MAXPLUGIN) FIND_PACKAGE(3dsMaxSDK) - ENDIF(WITH_NEL_MAXPLUGIN) -ENDIF(WIN32) + ENDIF() +ENDIF() IF(WITH_3D) FIND_PACKAGE(FreeType) IF(WITH_NEL_CEGUI) FIND_PACKAGE(CEGUI) - ENDIF(WITH_NEL_CEGUI) + ENDIF() -ENDIF(WITH_3D) +ENDIF() IF(WITH_SOUND) FIND_PACKAGE(Ogg) @@ -26,24 +26,16 @@ IF(WITH_SOUND) IF(WITH_DRIVER_OPENAL) FIND_PACKAGE(OpenAL) - ENDIF(WITH_DRIVER_OPENAL) + ENDIF() IF(WITH_DRIVER_FMOD) FIND_PACKAGE(FMOD) - ENDIF(WITH_DRIVER_FMOD) -ENDIF(WITH_SOUND) + ENDIF() +ENDIF() IF(WITH_GTK) FIND_PACKAGE(GTK2) -ENDIF(WITH_GTK) - -IF(WITH_LIBOVR) - FIND_PACKAGE(LibOVR) -ENDIF(WITH_LIBOVR) - -IF(WITH_LIBVR) - FIND_PACKAGE(LibVR) -ENDIF(WITH_LIBVR) +ENDIF() IF(WITH_INSTALL_LIBRARIES) IF(UNIX) @@ -61,7 +53,7 @@ IF(WITH_INSTALL_LIBRARIES) CONFIGURE_FILE(nel-config.in ${CMAKE_CURRENT_BINARY_DIR}/nel-config) INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/nel-config DESTINATION ${NL_BIN_PREFIX}) - ENDIF(UNIX) + ENDIF() ADD_SUBDIRECTORY(include) ENDIF() diff --git a/code/nel/include/nel/3d/texture_font.h b/code/nel/include/nel/3d/texture_font.h index 3aeb77b65..20353f236 100644 --- a/code/nel/include/nel/3d/texture_font.h +++ b/code/nel/include/nel/3d/texture_font.h @@ -61,6 +61,10 @@ public: sint32 Top; // Distance between origin and top of the texture sint32 Left; // Distance between origin and left of the texture sint32 AdvX; // Advance to the next caracter + + SLetterInfo():Char(0), FontGenerator(NULL), Size(0), Embolden(false), Oblique(false), Next(NULL), Prev(NULL), Cat(0), CharWidth(0), CharHeight(0), GlyphIndex(0), Top(0), Left(0), AdvX(0) + { + } }; struct SLetterKey @@ -74,6 +78,10 @@ public: uint32 getVal(); //bool operator < (const SLetterKey&k) const; //bool operator == (const SLetterKey&k) const; + + SLetterKey():Char(0), FontGenerator(NULL), Size(0), Embolden(false), Oblique(false) + { + } }; public: diff --git a/code/nel/include/nel/3d/tile_bank.h b/code/nel/include/nel/3d/tile_bank.h index 32a205e6d..ec96afb64 100644 --- a/code/nel/include/nel/3d/tile_bank.h +++ b/code/nel/include/nel/3d/tile_bank.h @@ -320,7 +320,7 @@ public: // For edition: change the tileVegetableDesc. NB: only the TileVegetableDescFileName is serialised. void setTileVegetableDesc (const CTileVegetableDesc &tvd); /** try to load the vegetable tile desc associated with the fileName (nlinfo() if can't) - * lookup into CPath. no-op if string=="". + * lookup into CPath. no-op if string empty */ void loadTileVegetableDesc(); diff --git a/code/nel/include/nel/CMakeLists.txt b/code/nel/include/nel/CMakeLists.txt index b695104ae..4df9413b5 100644 --- a/code/nel/include/nel/CMakeLists.txt +++ b/code/nel/include/nel/CMakeLists.txt @@ -2,36 +2,36 @@ SUBDIRS(misc) IF(WITH_3D) SUBDIRS(3d) -ENDIF(WITH_3D) +ENDIF() IF(WITH_GUI) ADD_SUBDIRECTORY(gui) -ENDIF(WITH_GUI) +ENDIF() IF(WITH_GEORGES) SUBDIRS(georges) -ENDIF(WITH_GEORGES) +ENDIF() IF(WITH_LIGO) SUBDIRS(ligo) -ENDIF(WITH_LIGO) +ENDIF() IF(WITH_LOGIC) SUBDIRS(logic) -ENDIF(WITH_LOGIC) +ENDIF() IF(WITH_NET) SUBDIRS(net) -ENDIF(WITH_NET) +ENDIF() IF(WITH_SOUND) SUBDIRS(sound) -ENDIF(WITH_SOUND) +ENDIF() IF(WITH_PACS) SUBDIRS(pacs) -ENDIF(WITH_PACS) +ENDIF() IF(WITH_NEL_CEGUI) SUBDIRS(cegui) -ENDIF(WITH_NEL_CEGUI) +ENDIF() diff --git a/code/nel/include/nel/gui/group_html.h b/code/nel/include/nel/gui/group_html.h index 6b8212c6e..a794f349b 100644 --- a/code/nel/include/nel/gui/group_html.h +++ b/code/nel/include/nel/gui/group_html.h @@ -253,6 +253,7 @@ namespace NLGUI int luaEndElement(CLuaState &ls); int luaShowDiv(CLuaState &ls); int luaParseHtml(CLuaState &ls); + int luaRenderHtml(CLuaState &ls); REFLECT_EXPORT_START(CGroupHTML, CGroupScrollText) REFLECT_LUA_METHOD("browse", luaBrowse) @@ -265,6 +266,7 @@ namespace NLGUI REFLECT_LUA_METHOD("endElement", luaEndElement) REFLECT_LUA_METHOD("showDiv", luaShowDiv) REFLECT_LUA_METHOD("parseHtml", luaParseHtml) + REFLECT_LUA_METHOD("renderHtml", luaRenderHtml) REFLECT_STRING("url", getURL, setURL) REFLECT_FLOAT("timeout", getTimeout, setTimeout) REFLECT_EXPORT_END diff --git a/code/nel/include/nel/misc/bitmap.h b/code/nel/include/nel/misc/bitmap.h index 0466cd673..f96cd39b9 100644 --- a/code/nel/include/nel/misc/bitmap.h +++ b/code/nel/include/nel/misc/bitmap.h @@ -375,6 +375,12 @@ public: void makeOpaque(); + /** + * Make fully transparent pixels (alpha 0) black. + */ + void makeTransparentPixelsBlack(); + + /** * Return if the bitmap has uniform alpha values for all pixels. * \param alpha return the uniform value if return is true @@ -609,7 +615,7 @@ public: /** * Extended version of blit. The destinaion of the blit is 'this' bitmap * Source and dest rect are clamped as necessary. - * For now, only RGBA is uspported (an asertion occurs otherwise) + * For now, only RGBA is supported (an asertion occurs otherwise) * mipmap are not updated. * IMPORTANT : copy to self is not handled correctly */ diff --git a/code/nel/include/nel/misc/diff_tool.h b/code/nel/include/nel/misc/diff_tool.h index 75a3f181b..e122137cf 100644 --- a/code/nel/include/nel/misc/diff_tool.h +++ b/code/nel/include/nel/misc/diff_tool.h @@ -21,7 +21,7 @@ namespace STRING_MANAGER { - const ucstring nl("\r\n"); + const ucstring nl("\n"); struct TStringInfo diff --git a/code/nel/include/nel/misc/i18n.h b/code/nel/include/nel/misc/i18n.h index 5f270a490..d50313357 100644 --- a/code/nel/include/nel/misc/i18n.h +++ b/code/nel/include/nel/misc/i18n.h @@ -144,12 +144,10 @@ public: * 16 bits encoding can be recognized by the official header : * FF, FE, witch can be reversed if the data are MSB first. * - * Optionally, you can force the reader to consider the file as - * UTF-8 encoded. * Optionally, you can ask the reader to interpret #include commands. */ static void readTextFile(const std::string &filename, - ucstring &result, bool forceUtf8 = false, + ucstring &result, bool fileLookup = true, bool preprocess = false, TLineFormat lineFmt = LINE_FMT_NO_CARE, @@ -162,11 +160,8 @@ public: * EF,BB, BF. * 16 bits encoding can be recognized by the official header : * FF, FE, witch can be reversed if the data are MSB first. - * - * Optionally, you can force the reader to consider the file as - * UTF-8 encoded. */ - static void readTextBuffer(uint8 *buffer, uint size, ucstring &result, bool forceUtf8 = false); + static void readTextBuffer(uint8 *buffer, uint size, ucstring &result); /** Remove any C style comment from the passed string. */ @@ -262,7 +257,7 @@ private: /// The internal read function, it does the real job of readTextFile static void _readTextFile(const std::string &filename, - ucstring &result, bool forceUtf8, + ucstring &result, bool fileLookup, bool preprocess, TLineFormat lineFmt, diff --git a/code/nel/include/nel/net/pacs_client.h b/code/nel/include/nel/net/pacs_client.h index 058d1fc63..f3c6d0426 100644 --- a/code/nel/include/nel/net/pacs_client.h +++ b/code/nel/include/nel/net/pacs_client.h @@ -48,7 +48,7 @@ public: /// Constructor CPacsClient() { - // No connexion + // No connection _Server=NULL; } @@ -567,7 +567,7 @@ static TCallbackItem PacsCallbackArray[] = inline bool CPacsClient::connect () { - // Create a connexion + // Create a connection _Server = new CCallbackClient; // Look up for PACS service diff --git a/code/nel/include/nel/sound/audio_decoder.h b/code/nel/include/nel/sound/audio_decoder.h index f7ae5ab31..f1dfdfc2c 100644 --- a/code/nel/include/nel/sound/audio_decoder.h +++ b/code/nel/include/nel/sound/audio_decoder.h @@ -67,7 +67,7 @@ public: static IAudioDecoder *createAudioDecoder(const std::string &type, NLMISC::IStream *stream, bool loop); /// Get information on a music file (only artist and title at the moment). - static bool getInfo(const std::string &filepath, std::string &artist, std::string &title); + static bool getInfo(const std::string &filepath, std::string &artist, std::string &title, float &length); /// Get audio/container extensions that are currently supported by the nel sound library. static void getMusicExtensions(std::vector &extensions); diff --git a/code/nel/include/nel/sound/audio_decoder_vorbis.h b/code/nel/include/nel/sound/audio_decoder_vorbis.h index 19d058d4a..4efcba255 100644 --- a/code/nel/include/nel/sound/audio_decoder_vorbis.h +++ b/code/nel/include/nel/sound/audio_decoder_vorbis.h @@ -77,7 +77,7 @@ public: inline sint32 getStreamOffset() { return _StreamOffset; } /// Get information on a music file (only artist and title at the moment). - static bool getInfo(NLMISC::IStream *stream, std::string &artist, std::string &title); + static bool getInfo(NLMISC::IStream *stream, std::string &artist, std::string &title, float &length); /// Get how many bytes the music buffer requires for output minimum. virtual uint32 getRequiredBytes(); diff --git a/code/nel/include/nel/sound/audio_mixer_user.h b/code/nel/include/nel/sound/audio_mixer_user.h index d8949c3d3..4163bf616 100644 --- a/code/nel/include/nel/sound/audio_mixer_user.h +++ b/code/nel/include/nel/sound/audio_mixer_user.h @@ -332,7 +332,7 @@ public: virtual bool isMusicEnded(); virtual void setMusicVolume(float gain); virtual float getMusicLength(); - virtual bool getSongTitle(const std::string &filename, std::string &result); + virtual bool getSongTitle(const std::string &filename, std::string &result, float &length); virtual void enableBackgroundMusic(bool enable); virtual void enableBackgroundMusicTimeConstraint(bool enable); CMusicSoundManager *getBackgroundMusicManager() const {return _BackgroundMusicManager;} diff --git a/code/nel/include/nel/sound/driver/sound_driver.h b/code/nel/include/nel/sound/driver/sound_driver.h index b5549e5bf..e38126fff 100644 --- a/code/nel/include/nel/sound/driver/sound_driver.h +++ b/code/nel/include/nel/sound/driver/sound_driver.h @@ -192,7 +192,7 @@ public: * \param artist returns the song artist (empty if not available) * \param title returns the title (empty if not available) */ - virtual bool getMusicInfo(const std::string &/* filepath */, std::string &artist, std::string &title) { artist.clear(); title.clear(); return false; } + virtual bool getMusicInfo(const std::string &/* filepath */, std::string &artist, std::string &title, float &length) { artist.clear(); title.clear(); length = 0.f; return false; } /// Get audio/container extensions that are supported natively by the driver implementation. virtual void getMusicExtensions(std::vector &extensions) const = 0; /// Return if a music extension is supported by the driver's music channel. diff --git a/code/nel/include/nel/sound/u_audio_mixer.h b/code/nel/include/nel/sound/u_audio_mixer.h index 0d845f9c3..c3059152c 100644 --- a/code/nel/include/nel/sound/u_audio_mixer.h +++ b/code/nel/include/nel/sound/u_audio_mixer.h @@ -432,7 +432,7 @@ public: /** Get the song title. Returns false if the song is not found or the function is not implemented. * If the song as no name, result is filled with the filename. */ - virtual bool getSongTitle(const std::string &filename, std::string &result) =0; + virtual bool getSongTitle(const std::string &filename, std::string &result, float &length) =0; /** enable or disable the background music system. disable it when you want to play your own mp3 for instance */ virtual void enableBackgroundMusic(bool enable) =0; diff --git a/code/nel/samples/3d/CMakeLists.txt b/code/nel/samples/3d/CMakeLists.txt index 6cd2e49ef..772ab0056 100644 --- a/code/nel/samples/3d/CMakeLists.txt +++ b/code/nel/samples/3d/CMakeLists.txt @@ -4,8 +4,8 @@ ADD_SUBDIRECTORY(shape_viewer) IF(WITH_NEL_CEGUI) ADD_SUBDIRECTORY(cegui) -ENDIF(WITH_NEL_CEGUI) +ENDIF() #IF(WITH_QT) # ADD_SUBDIRECTORY(qtnel) -#ENDIF(WITH_QT) +#ENDIF() diff --git a/code/nel/samples/CMakeLists.txt b/code/nel/samples/CMakeLists.txt index 9f98df488..84c4e3f11 100644 --- a/code/nel/samples/CMakeLists.txt +++ b/code/nel/samples/CMakeLists.txt @@ -2,20 +2,20 @@ ADD_SUBDIRECTORY(misc) IF(WITH_3D) ADD_SUBDIRECTORY(3d) -ENDIF(WITH_3D) +ENDIF() IF(WITH_GEORGES) ADD_SUBDIRECTORY(georges) -ENDIF(WITH_GEORGES) +ENDIF() IF(WITH_NET) ADD_SUBDIRECTORY(net) -ENDIF(WITH_NET) +ENDIF() IF(WITH_PACS) ADD_SUBDIRECTORY(pacs) -ENDIF(WITH_PACS) +ENDIF() IF(WITH_SOUND) ADD_SUBDIRECTORY(sound) -ENDIF(WITH_SOUND) +ENDIF() diff --git a/code/nel/samples/net/udp/CMakeLists.txt b/code/nel/samples/net/udp/CMakeLists.txt index a4528c4db..21ef87015 100644 --- a/code/nel/samples/net/udp/CMakeLists.txt +++ b/code/nel/samples/net/udp/CMakeLists.txt @@ -8,7 +8,7 @@ ADD_DEFINITIONS(-DUDP_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_udp/\\"") IF(WITH_3D) ADD_DEFINITIONS(-DUSE_3D) -ENDIF(WITH_3D) +ENDIF() TARGET_LINK_LIBRARIES(nl_sample_udpclient nelmisc nelnet nel3d) TARGET_LINK_LIBRARIES(nl_sample_udpserver nelmisc nelnet) @@ -22,4 +22,4 @@ INSTALL(FILES bench_service.cfg client.cfg readme.txt DESTINATION ${NL_SHARE_PRE IF(WITH_3D) INSTALL(FILES n019003l.pfb DESTINATION ${NL_SHARE_PREFIX}/nl_sample_udp COMPONENT samplesnet) -ENDIF(WITH_3D) +ENDIF() diff --git a/code/nel/src/3d/CMakeLists.txt b/code/nel/src/3d/CMakeLists.txt index 821c888ce..e79d26f57 100644 --- a/code/nel/src/3d/CMakeLists.txt +++ b/code/nel/src/3d/CMakeLists.txt @@ -730,12 +730,12 @@ ADD_DEFINITIONS(${LIBVR_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nel3d ${CMAKE_CURRENT_SOURCE_DIR}/std3d.h ${CMAKE_CURRENT_SOURCE_DIR}/std3d.cpp) -ENDIF(WITH_PCH) +ENDIF() NL_GEN_PC(nel-3d.pc) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nel3d LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() ADD_SUBDIRECTORY(driver) diff --git a/code/nel/src/3d/driver/CMakeLists.txt b/code/nel/src/3d/driver/CMakeLists.txt index 1004e5824..8f1693716 100644 --- a/code/nel/src/3d/driver/CMakeLists.txt +++ b/code/nel/src/3d/driver/CMakeLists.txt @@ -1,13 +1,13 @@ IF(WITH_DRIVER_OPENGL) ADD_SUBDIRECTORY(opengl) -ENDIF(WITH_DRIVER_OPENGL) +ENDIF() IF(WITH_DRIVER_OPENGLES) ADD_SUBDIRECTORY(opengles) -ENDIF(WITH_DRIVER_OPENGLES) +ENDIF() IF(WIN32) IF(WITH_DRIVER_DIRECT3D) ADD_SUBDIRECTORY(direct3d) - ENDIF(WITH_DRIVER_DIRECT3D) -ENDIF(WIN32) + ENDIF() +ENDIF() diff --git a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp index 2b90ea1ed..887034a9d 100644 --- a/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp +++ b/code/nel/src/3d/driver/direct3d/driver_direct3d.cpp @@ -2267,7 +2267,10 @@ bool CDriverD3D::getCurrentScreenMode(GfxMode &gfxMode) // *************************************************************************** void CDriverD3D::setWindowTitle(const ucstring &title) { - SetWindowTextW(_HWnd,(WCHAR*)title.c_str()); + if (!SetWindowTextW(_HWnd, (WCHAR*)title.c_str())) + { + nlwarning("SetWindowText failed: %s", formatErrorMessage(getLastError()).c_str()); + } } // *************************************************************************** diff --git a/code/nel/src/3d/driver/opengl/GL/glext.h b/code/nel/src/3d/driver/opengl/GL/glext.h index 47b435bce..0021d6b1e 100644 --- a/code/nel/src/3d/driver/opengl/GL/glext.h +++ b/code/nel/src/3d/driver/opengl/GL/glext.h @@ -33,7 +33,7 @@ extern "C" { ** used to make the header, and the header can be found at ** http://www.opengl.org/registry/ ** -** Khronos $Revision: 32957 $ on $Date: 2016-06-09 17:03:08 -0400 (Thu, 09 Jun 2016) $ +** Khronos $Revision: 33061 $ on $Date: 2016-07-14 20:14:13 -0400 (Thu, 14 Jul 2016) $ */ #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) @@ -53,7 +53,7 @@ extern "C" { #define GLAPI extern #endif -#define GL_GLEXT_VERSION 20160609 +#define GL_GLEXT_VERSION 20160714 /* Generated C header for: * API: gl @@ -4657,8 +4657,13 @@ GLAPI void APIENTRY glVertexBlendARB (GLint count); #ifndef GL_ARB_vertex_buffer_object #define GL_ARB_vertex_buffer_object 1 +#if defined(__APPLE__) +typedef intptr_t GLsizeiptrARB; +typedef intptr_t GLintptrARB; +#else typedef ptrdiff_t GLsizeiptrARB; typedef ptrdiff_t GLintptrARB; +#endif #define GL_BUFFER_SIZE_ARB 0x8764 #define GL_BUFFER_USAGE_ARB 0x8765 #define GL_ARRAY_BUFFER_ARB 0x8892 @@ -8831,6 +8836,11 @@ GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRG #define GL_INTERLACE_READ_INGR 0x8568 #endif /* GL_INGR_interlace_read */ +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 +#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE +#endif /* GL_INTEL_conservative_rasterization */ + #ifndef GL_INTEL_fragment_shader_ordering #define GL_INTEL_fragment_shader_ordering 1 #endif /* GL_INTEL_fragment_shader_ordering */ diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.cpp b/code/nel/src/3d/driver/opengl/driver_opengl.cpp index 6ab0e3336..3f2dca9b6 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl.cpp @@ -196,18 +196,6 @@ CDriverGL::CDriverGL() _backBufferHeight = 0; _backBufferWidth = 0; - // autorelease pool for memory management - _autoreleasePool = [[NSAutoreleasePool alloc] init]; - - // init the application object - [NSApplication sharedApplication]; - - // create the menu in the top screen bar - setupApplicationMenu(); - - // finish the application launching - [NSApp finishLaunching]; - #elif defined (NL_OS_UNIX) _dpy = 0; @@ -373,10 +361,6 @@ CDriverGL::~CDriverGL() { H_AUTO_OGL(CDriverGL_CDriverGLDtor) release(); - -#if defined(NL_OS_MAC) - [_autoreleasePool release]; -#endif } // -------------------------------------------------- @@ -638,7 +622,7 @@ bool CDriverGL::setupDisplay() checkForPerPixelLightingSupport(); #ifndef USE_OPENGLES - // if EXTVertexShader is used, bind the standard GL arrays, and allocate constant + // if EXTVertexShader is used, bind the standard GL arrays, and allocate constant if (!_Extensions.NVVertexProgram && !_Extensions.ARBVertexProgram && _Extensions.EXTVertexShader) { _EVSPositionHandle = nglBindParameterEXT(GL_CURRENT_VERTEX_EXT); @@ -942,13 +926,6 @@ bool CDriverGL::swapBuffers() #elif defined(NL_OS_MAC) - // TODO: maybe do this somewhere else? - if(_DestroyWindow) - { - [_autoreleasePool release]; - _autoreleasePool = [[NSAutoreleasePool alloc] init]; - } - [_ctx flushBuffer]; #elif defined (NL_OS_UNIX) diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp index 373c501bf..9d9143515 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp @@ -1676,7 +1676,7 @@ void registerGlExtensions(CGlExtensions &ext) // Check pixel program // Disable feature ??? if (!ext.DisableHardwarePixelProgram) - { + { ext.ARBFragmentProgram = setupARBFragmentProgram(glext); ext.NVFragmentProgram2 = setupNVFragmentProgram2(glext); ext.ARBFragmentShader = setupARBFragmentShader(glext); @@ -1685,6 +1685,7 @@ void registerGlExtensions(CGlExtensions &ext) { ext.ARBFragmentProgram = false; ext.NVFragmentProgram2 = false; + ext.ARBFragmentShader = false; } ext.OESDrawTexture = setupOESDrawTexture(glext); diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp index c826238ea..4469550b3 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_window.cpp @@ -343,9 +343,14 @@ bool CDriverGL::init (uintptr_t windowIcon, emptyProc exitFunc) retrieveATIDriverVersion(); #elif defined(NL_OS_MAC) - // nothing to do nlunreferenced(windowIcon); + // autorelease pool for memory management + _autoreleasePool = [[NSAutoreleasePool alloc] init]; + + // init the application object + [NSApplication sharedApplication]; + #elif defined (NL_OS_UNIX) nlunreferenced(windowIcon); @@ -485,7 +490,7 @@ bool CDriverGL::unInit() #elif defined(NL_OS_MAC) - // nothing to do + [_autoreleasePool release]; #elif defined (NL_OS_UNIX) @@ -1454,7 +1459,7 @@ bool CDriverGL::createWindow(const GfxMode &mode) pos = 0; hwndParent = NULL; } - window = CreateWindowW(L"NLClass", L"NeL Window", dwStyle, + window = CreateWindowW(L"NLClass", L"NeL Window", dwStyle, pos, pos, mode.Width, mode.Height, hwndParent, NULL, GetModuleHandle(NULL), NULL); if (window == EmptyWindow) @@ -1466,6 +1471,12 @@ bool CDriverGL::createWindow(const GfxMode &mode) #elif defined(NL_OS_MAC) + // create the menu in the top screen bar + setupApplicationMenu(); + + // finish the application launching + [NSApp finishLaunching]; + // describe how the window should look like and behave unsigned int styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask; @@ -1642,6 +1653,7 @@ bool CDriverGL::destroyWindow() } #elif defined(NL_OS_MAC) + #elif defined(NL_OS_UNIX) if (_DestroyWindow && _ctx) // FIXME: _DestroyWindow may need to be removed here as well @@ -2299,7 +2311,10 @@ void CDriverGL::setWindowTitle(const ucstring &title) #ifdef NL_OS_WINDOWS - SetWindowTextW(_win, (WCHAR*)title.c_str()); + if (!SetWindowTextW(_win, (WCHAR*)title.c_str())) + { + nlwarning("SetWindowText failed: %s", formatErrorMessage(getLastError()).c_str()); + } #elif defined(NL_OS_MAC) diff --git a/code/nel/src/3d/driver/opengl/mac/cocoa_event_emitter.cpp b/code/nel/src/3d/driver/opengl/mac/cocoa_event_emitter.cpp index e4a531b9b..f33667082 100644 --- a/code/nel/src/3d/driver/opengl/mac/cocoa_event_emitter.cpp +++ b/code/nel/src/3d/driver/opengl/mac/cocoa_event_emitter.cpp @@ -153,9 +153,9 @@ bool CCocoaEventEmitter::pasteTextFromClipboard(ucstring &text) NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; NSArray *classArray = [NSArray arrayWithObject:[NSString class]]; NSDictionary *options = [NSDictionary dictionary]; - + BOOL ok = [pasteboard canReadObjectForClasses:classArray options:options]; - if (ok) + if (ok) { NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options]; NSString *nstext = [objectsToPaste objectAtIndex:0]; @@ -264,8 +264,8 @@ bool CCocoaEventEmitter::processMessage(NSEvent* event, CEventServer* server) mousePos.y /= (float)viewRect.size.height; // if the mouse event was placed outside the view, don't tell NeL :) - if((mousePos.x < 0.0 || mousePos.x > 1.0 || - mousePos.y < 0.0 || mousePos.y > 1.0) && + if((mousePos.x < 0.0 || mousePos.x > 1.0 || + mousePos.y < 0.0 || mousePos.y > 1.0) && event.type != NSKeyDown && event.type != NSKeyUp) { return false; @@ -415,7 +415,7 @@ typedef bool (*cocoaProc)(NL3D::IDriver*, const void* e); void CCocoaEventEmitter::submitEvents(CEventServer& server, bool /* allWins */) { - // break if there was no event to handle + // break if there was no event to handle // if running embedded in e.g. qt, _eventLoop will be false while(_eventLoop) { @@ -442,8 +442,15 @@ void CCocoaEventEmitter::submitEvents(CEventServer& server, bool /* allWins */) processMessage(event, &server); } - // forward the event to the cocoa application - [NSApp sendEvent:event]; + @try + { + // forward the event to the cocoa application + [NSApp sendEvent:event]; + } + @catch(NSException *e) + { + nlwarning("Exception when sending event: %s", [[e reason] UTF8String]); + } } _server = &server; diff --git a/code/nel/src/3d/font_generator.cpp b/code/nel/src/3d/font_generator.cpp index cdbaf8834..ce8048f15 100644 --- a/code/nel/src/3d/font_generator.cpp +++ b/code/nel/src/3d/font_generator.cpp @@ -457,7 +457,7 @@ CFontGenerator::CFontGenerator (const std::string &fontFileName, const std::stri nlerror ("FT_New_Face() failed with file '%s': %s", fontFileName.c_str(), getFT2Error(error)); } - if (fontExFileName != "") + if (!fontExFileName.empty()) { error = FT_Attach_File (_Face, fontExFileName.c_str ()); if (error) diff --git a/code/nel/src/3d/landscape.cpp b/code/nel/src/3d/landscape.cpp index d588fa424..e3658dd88 100644 --- a/code/nel/src/3d/landscape.cpp +++ b/code/nel/src/3d/landscape.cpp @@ -1831,9 +1831,9 @@ void CLandscape::loadTile(uint16 tileId) if(tile) textName= tile->getRelativeFileName(CTile::additive); else - textName= ""; + textName.clear(); // If no additive for this tile, rdrpass is NULL. - if(textName=="") + if(textName.empty()) tileInfo->AdditiveRdrPass= NULL; else { @@ -1844,7 +1844,7 @@ void CLandscape::loadTile(uint16 tileId) // We may have an alpha part for additive. textName= tile->getRelativeFileName (CTile::alpha); - if(textName!="") + if(!textName.empty()) // Must Use clamp for alpha (although NVidia drivers are buggy), because the texture doesn't tile at all pass.TextureAlpha= findTileTexture(TileBank.getAbsPath()+textName, true); @@ -1866,7 +1866,7 @@ void CLandscape::loadTile(uint16 tileId) if(tile) { textName= tile->getRelativeFileName(CTile::diffuse); - if(textName!="") + if(!textName.empty()) // Avoid using Clamp for diffuse, because of recent NVidia GL drivers Bugs in 77.72 pass.TextureDiffuse= findTileTexture(TileBank.getAbsPath()+textName, false); else @@ -1880,7 +1880,7 @@ void CLandscape::loadTile(uint16 tileId) if(tile) { textName= tile->getRelativeFileName (CTile::alpha); - if(textName!="") + if(!textName.empty()) // Must Use clamp for alpha (although NVidia drivers are buggy), because the texture doesn't tile at all pass.TextureAlpha= findTileTexture(TileBank.getAbsPath()+textName, true); } diff --git a/code/nel/src/3d/landscape_user.cpp b/code/nel/src/3d/landscape_user.cpp index d6de7df9e..c2c3a4b27 100644 --- a/code/nel/src/3d/landscape_user.cpp +++ b/code/nel/src/3d/landscape_user.cpp @@ -213,9 +213,9 @@ void CLandscapeUser::refreshAllZonesAround(const CVector &pos, float radius, std refreshZonesAround (pos, radius, za, zr); // some zone added or removed?? - if(za != "") + if(!za.empty()) zonesAdded.push_back(za); - if(zr != "") + if(!zr.empty()) zonesRemoved.push_back(zr); _ZoneManager.checkZonesAround ((uint)pos.x, (uint)(-pos.y), (uint)radius); diff --git a/code/nel/src/3d/landscapeig_manager.cpp b/code/nel/src/3d/landscapeig_manager.cpp index f4388f9fa..500373360 100644 --- a/code/nel/src/3d/landscapeig_manager.cpp +++ b/code/nel/src/3d/landscapeig_manager.cpp @@ -174,7 +174,7 @@ UInstanceGroup *CLandscapeIGManager::loadZoneIG(const std::string &name) { NL3D_HAUTO_LAND_MNGR_LOAD_ZONEIG - if(name=="") + if(name.empty()) return NULL; // try to find this InstanceGroup. @@ -232,7 +232,7 @@ void CLandscapeIGManager::unloadArrayZoneIG(const std::vector &name void CLandscapeIGManager::unloadZoneIG(const std::string &name) { NL3D_HAUTO_LAND_MNGR_UNLOAD_ZONEIG - if(name=="") + if(name.empty()) return; // try to find this InstanceGroup. @@ -255,7 +255,7 @@ void CLandscapeIGManager::unloadZoneIG(const std::string &name) // *************************************************************************** bool CLandscapeIGManager::isIGAddedToScene(const std::string &name) const { - if(name=="") + if(name.empty()) return false; // try to find this InstanceGroup. @@ -272,7 +272,7 @@ bool CLandscapeIGManager::isIGAddedToScene(const std::string &name) const // *************************************************************************** UInstanceGroup *CLandscapeIGManager::getIG(const std::string &name) const { - if(name=="") + if(name.empty()) return NULL; // try to find this InstanceGroup. diff --git a/code/nel/src/3d/scene_group.cpp b/code/nel/src/3d/scene_group.cpp index fa67230d4..c5f6f24dc 100644 --- a/code/nel/src/3d/scene_group.cpp +++ b/code/nel/src/3d/scene_group.cpp @@ -451,7 +451,6 @@ void CInstanceGroup::serial (NLMISC::IStream& f) _PointLightArray.clear(); } - if (version >= 2) f.serial(_GlobalPos); @@ -574,10 +573,11 @@ bool CInstanceGroup::addToScene (CScene& scene, IDriver *driver, uint selectedTe else { _Instances[i] = scene.createInstance (shapeName); - } - if( _Instances[i] == NULL ) - { - nlwarning("Not found '%s' file", shapeName.c_str()); + + if (_Instances[i] == NULL) + { + nlwarning("Not found '%s' file", shapeName.c_str()); + } } } } @@ -1121,7 +1121,7 @@ void CInstanceGroup::setClusterSystemForInstances(CInstanceGroup *pIG) void CInstanceGroup::getDynamicPortals (std::vector &names) { for (uint32 i = 0; i < _Portals.size(); ++i) - if (_Portals[i].getName() != "") + if (!_Portals[i].getName().empty()) names.push_back (_Portals[i].getName()); } diff --git a/code/nel/src/3d/tile_bank.cpp b/code/nel/src/3d/tile_bank.cpp index d4e26ab06..0f05b3df6 100644 --- a/code/nel/src/3d/tile_bank.cpp +++ b/code/nel/src/3d/tile_bank.cpp @@ -264,7 +264,7 @@ sint CTileBank::getNumBitmap (CTile::TBitmap bitmap) const if (!_TileVector[i].isFree()) { const std::string &str=_TileVector[i].getRelativeFileName (bitmap); - if (str!="") + if (!str.empty()) { std::vector vect (str.length()+1); memcpy (&*vect.begin(), str.c_str(), str.length()+1); @@ -583,7 +583,7 @@ void CTileBank::removeDisplacementMap (uint mapId) if (mapId==_DisplacementMap.size()-1) { // Resize the array ? - while ((mapId>0)&&(_DisplacementMap[mapId]._FileName=="")) + while ((mapId>0)&&(_DisplacementMap[mapId]._FileName.empty())) _DisplacementMap.resize (mapId--); } } @@ -608,7 +608,7 @@ uint CTileBank::getDisplacementMap (const string &fileName) for (noiseTile=0; noiseTile<_DisplacementMap.size(); noiseTile++) { // Same name ? - if (_DisplacementMap[noiseTile]._FileName=="") + if (_DisplacementMap[noiseTile]._FileName.empty()) break; } if (noiseTile==_DisplacementMap.size()) @@ -1433,7 +1433,7 @@ void CTileSet::deleteBordersIfLast (const CTileBank& bank, CTile::TBitmap type) while (ite!=_Tile128.end()) { // If the file name is valid - if (bank.getTile (*ite)->getRelativeFileName(type)!="") + if (!bank.getTile (*ite)->getRelativeFileName(type).empty()) { // Don't delete, bDelete=false; @@ -1450,7 +1450,7 @@ void CTileSet::deleteBordersIfLast (const CTileBank& bank, CTile::TBitmap type) while (ite!=_Tile256.end()) { // If the file name is valid - if (bank.getTile (*ite)->getRelativeFileName(type)!="") + if (!bank.getTile (*ite)->getRelativeFileName(type).empty()) { // Don't delete, bDelete=false; @@ -1474,7 +1474,7 @@ void CTileSet::deleteBordersIfLast (const CTileBank& bank, CTile::TBitmap type) if (nTile!=-1) { // If the file name is valid - if (bank.getTile (nTile)->getRelativeFileName(type)!="") + if (!bank.getTile (nTile)->getRelativeFileName(type).empty()) { // Don't delete, bDelete=false; @@ -1564,7 +1564,7 @@ const CTileVegetableDesc &CTileSet::getTileVegetableDesc() const // *************************************************************************** void CTileSet::loadTileVegetableDesc() { - if(_TileVegetableDescFileName!="") + if(!_TileVegetableDescFileName.empty()) { try { diff --git a/code/nel/src/CMakeLists.txt b/code/nel/src/CMakeLists.txt index 60e5afccb..2b140340a 100644 --- a/code/nel/src/CMakeLists.txt +++ b/code/nel/src/CMakeLists.txt @@ -2,40 +2,40 @@ ADD_SUBDIRECTORY(misc) IF(WITH_3D) ADD_SUBDIRECTORY(3d) -ENDIF(WITH_3D) +ENDIF() IF(WITH_GUI) ADD_SUBDIRECTORY(gui) -ENDIF(WITH_GUI) +ENDIF() IF(WITH_GEORGES) ADD_SUBDIRECTORY(georges) -ENDIF(WITH_GEORGES) +ENDIF() IF(WITH_LIGO) ADD_SUBDIRECTORY(ligo) -ENDIF(WITH_LIGO) +ENDIF() IF(WITH_LOGIC) ADD_SUBDIRECTORY(logic) -ENDIF(WITH_LOGIC) +ENDIF() IF(WITH_NET) ADD_SUBDIRECTORY(net) -ENDIF(WITH_NET) +ENDIF() IF(WITH_SOUND) ADD_SUBDIRECTORY(sound) -ENDIF(WITH_SOUND) +ENDIF() IF(WITH_NEL_CEGUI) ADD_SUBDIRECTORY(cegui) -ENDIF(WITH_NEL_CEGUI) +ENDIF() IF(WITH_PACS) ADD_SUBDIRECTORY(pacs) -ENDIF(WITH_PACS) +ENDIF() IF(WITH_NEL_TOOLS) ADD_SUBDIRECTORY(pipeline) -ENDIF(WITH_NEL_TOOLS) +ENDIF() diff --git a/code/nel/src/cegui/CMakeLists.txt b/code/nel/src/cegui/CMakeLists.txt index 20fbb60d8..0a94d7892 100644 --- a/code/nel/src/cegui/CMakeLists.txt +++ b/code/nel/src/cegui/CMakeLists.txt @@ -14,4 +14,4 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} -DNEL_CEGUIRENDERER_EXPORTS) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelceguirenderer RUNTIME DESTINATION ${NL_BIN_PREFIX} LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/georges/CMakeLists.txt b/code/nel/src/georges/CMakeLists.txt index 07ee701b3..802324d31 100644 --- a/code/nel/src/georges/CMakeLists.txt +++ b/code/nel/src/georges/CMakeLists.txt @@ -17,10 +17,10 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelgeorges ${CMAKE_CURRENT_SOURCE_DIR}/stdgeorges.h ${CMAKE_CURRENT_SOURCE_DIR}/stdgeorges.cpp) -ENDIF(WITH_PCH) +ENDIF() NL_GEN_PC(nel-georges.pc) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelgeorges LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/gui/CMakeLists.txt b/code/nel/src/gui/CMakeLists.txt index 091e9e5da..5233b8ceb 100644 --- a/code/nel/src/gui/CMakeLists.txt +++ b/code/nel/src/gui/CMakeLists.txt @@ -18,8 +18,8 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} ${CURL_DEFINITIONS} ${LUABIND_DEFINITIONS IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelgui ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.cpp) -ENDIF(WITH_PCH) +ENDIF() IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelgui LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp index f64fc631c..3ea18a717 100644 --- a/code/nel/src/gui/group_html.cpp +++ b/code/nel/src/gui/group_html.cpp @@ -572,7 +572,7 @@ namespace NLGUI curl_easy_cleanup(it->curl); string tmpfile = it->dest + ".tmp"; - if(res != CURLE_OK || r < 200 || r >= 300 || ((it->md5sum != "") && (it->md5sum != getMD5(tmpfile).toString()))) + if(res != CURLE_OK || r < 200 || r >= 300 || (!it->md5sum.empty() && (it->md5sum != getMD5(tmpfile).toString()))) { NLMISC::CFile::deleteFile(tmpfile.c_str()); } @@ -5500,6 +5500,19 @@ namespace NLGUI return 0; } + // *************************************************************************** + int CGroupHTML::luaRenderHtml(CLuaState &ls) + { + const char *funcName = "renderHtml"; + CLuaIHM::checkArgCount(ls, funcName, 1); + CLuaIHM::checkArgType(ls, funcName, 1, LUA_TSTRING); + std::string html = ls.toString(1); + + renderHtmlString(html); + + return 0; + } + // *************************************************************************** int CGroupHTML::luaInsertText(CLuaState &ls) { diff --git a/code/nel/src/gui/lua_object.cpp b/code/nel/src/gui/lua_object.cpp index dc7abff52..57581d6ec 100644 --- a/code/nel/src/gui/lua_object.cpp +++ b/code/nel/src/gui/lua_object.cpp @@ -422,7 +422,7 @@ namespace NLGUI { nlassert(key); nlassert(isValid()); - if (!isTable()) throw ELuaNotATable(NLMISC::toString("Trying to set a value '%d" NL_I64 "' at key %s on object '%s' of type %s (not a table).", value, key, getId().c_str(), getTypename())); + if (!isTable()) throw ELuaNotATable(NLMISC::toString("Trying to set a value '%" NL_I64 "d' at key %s on object '%s' of type %s (not a table).", value, key, getId().c_str(), getTypename())); CLuaStackChecker lsc(_LuaState); push(); _LuaState->push(key); diff --git a/code/nel/src/gui/view_text.cpp b/code/nel/src/gui/view_text.cpp index c88dd8173..a2975fc1a 100644 --- a/code/nel/src/gui/view_text.cpp +++ b/code/nel/src/gui/view_text.cpp @@ -1430,7 +1430,7 @@ namespace NLGUI // Append to the last line _Lines.back()->addWord(ucCurrentWord, 0, wordFormat, _FontWidth, *TextContext); // reset the word - ucCurrentWord = ucstring(""); + ucCurrentWord.clear(); } diff --git a/code/nel/src/gui/widget_manager.cpp b/code/nel/src/gui/widget_manager.cpp index bd8dfb5fe..d3888b68c 100644 --- a/code/nel/src/gui/widget_manager.cpp +++ b/code/nel/src/gui/widget_manager.cpp @@ -442,7 +442,7 @@ namespace NLGUI if (sZeStart[sZeStart.size()-1] == ':') sZeStart = sZeStart.substr(0, sZeStart.size()-1); - while (sZeStart != "") + while (!sZeStart.empty()) { if (sEltId[0] == ':') sTmp = sZeStart + sEltId; diff --git a/code/nel/src/ligo/CMakeLists.txt b/code/nel/src/ligo/CMakeLists.txt index 83b6c1fc0..39823c4d5 100644 --- a/code/nel/src/ligo/CMakeLists.txt +++ b/code/nel/src/ligo/CMakeLists.txt @@ -15,10 +15,10 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelligo ${CMAKE_CURRENT_SOURCE_DIR}/stdligo.h ${CMAKE_CURRENT_SOURCE_DIR}/stdligo.cpp) -ENDIF(WITH_PCH) +ENDIF() NL_GEN_PC(nel-ligo.pc) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelligo LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/logic/CMakeLists.txt b/code/nel/src/logic/CMakeLists.txt index 1d4691a40..0b5bc443b 100644 --- a/code/nel/src/logic/CMakeLists.txt +++ b/code/nel/src/logic/CMakeLists.txt @@ -15,8 +15,8 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nellogic ${CMAKE_CURRENT_SOURCE_DIR}/stdlogic.h ${CMAKE_CURRENT_SOURCE_DIR}/stdlogic.cpp) -ENDIF(WITH_PCH) +ENDIF() IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nellogic LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/misc/CMakeLists.txt b/code/nel/src/misc/CMakeLists.txt index 53993161c..029d24323 100644 --- a/code/nel/src/misc/CMakeLists.txt +++ b/code/nel/src/misc/CMakeLists.txt @@ -179,34 +179,34 @@ IF(WITH_GTK) INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) ADD_DEFINITIONS(-DNL_USE_GTK) TARGET_LINK_LIBRARIES(nelmisc ${GTK2_LIBRARIES}) - ENDIF(GTK2_FOUND) -ENDIF(WITH_GTK) + ENDIF() +ENDIF() IF(JPEG_FOUND) INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) ADD_DEFINITIONS(-DUSE_JPEG) TARGET_LINK_LIBRARIES(nelmisc ${JPEG_LIBRARY}) -ENDIF(JPEG_FOUND) +ENDIF() IF(GIF_FOUND) INCLUDE_DIRECTORIES(${GIF_INCLUDE_DIR}) ADD_DEFINITIONS(-DUSE_GIF) TARGET_LINK_LIBRARIES(nelmisc ${GIF_LIBRARY}) -ENDIF(GIF_FOUND) +ENDIF() IF(WITH_STATIC OR WIN32) TARGET_LINK_LIBRARIES(nelmisc ${PNG_LIBRARIES}) -ELSE(WITH_STATIC OR WIN32) +ELSE() # Link only with libpng shared library TARGET_LINK_LIBRARIES(nelmisc ${PNG_LIBRARY}) -ENDIF(WITH_STATIC OR WIN32) +ENDIF() IF(UNIX) TARGET_LINK_LIBRARIES(nelmisc -lc -ldl) IF(NOT APPLE) TARGET_LINK_LIBRARIES(nelmisc -lrt) - ENDIF(NOT APPLE) -ENDIF(UNIX) + ENDIF() +ENDIF() INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${PNG_INCLUDE_DIR} config_file) @@ -220,10 +220,10 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelmisc ${CMAKE_CURRENT_SOURCE_DIR}/stdmisc.h ${CMAKE_CURRENT_SOURCE_DIR}/stdmisc.cpp) -ENDIF(WITH_PCH) +ENDIF() NL_GEN_PC(nel-misc.pc) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelmisc LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/misc/app_context.cpp b/code/nel/src/misc/app_context.cpp index 68ca720ed..5206681f9 100644 --- a/code/nel/src/misc/app_context.cpp +++ b/code/nel/src/misc/app_context.cpp @@ -18,7 +18,6 @@ #include "nel/misc/app_context.h" #include "nel/misc/dynloadlib.h" #include "nel/misc/command.h" -#include "nel/misc/system_utils.h" #include @@ -72,9 +71,6 @@ INelContext::~INelContext() CInstanceCounterLocalManager::releaseInstance(); - // uninit some systems stuff - CSystemUtils::uninit(); - _NelContext = NULL; *(_getInstance()) = NULL; } @@ -94,9 +90,6 @@ void INelContext::contextReady() // set numeric locale to C to avoid the use of decimal separators different of a dot char *locale = setlocale(LC_NUMERIC, "C"); - // init some systems stuff - CSystemUtils::init(); - // register any pending thinks // register local instance counter in the global instance counter manager diff --git a/code/nel/src/misc/bitmap.cpp b/code/nel/src/misc/bitmap.cpp index 5574a8597..a996c8546 100644 --- a/code/nel/src/misc/bitmap.cpp +++ b/code/nel/src/misc/bitmap.cpp @@ -369,6 +369,51 @@ void CBitmap::makeOpaque() } +/*-------------------------------------------------------------------*\ + makeTransparentPixelsBlack +\*-------------------------------------------------------------------*/ +void CBitmap::makeTransparentPixelsBlack() +{ + if (_Width*_Height == 0) return; + + uint pixelSize; + + switch (PixelFormat) + { + case RGBA: pixelSize = 4; break; + case AlphaLuminance: pixelSize = 2; break; + default: return; + } + + uint colorsSize = pixelSize - 1; + + for (uint8 m = 0; m < _MipMapCount; ++m) + { + // get a pointer on original data + uint8 *data = _Data[m].getPtr(); + + // end of data + uint8 *endData = data + _Data[m].size(); + + // first alpha + data += pixelSize - 1; + + // replace all alpha values by 255 + while (data < endData) + { + // fully transparent pixel + if (*data == 0) + { + // make colors black + memset(data - colorsSize, 0, colorsSize); + } + + data += pixelSize; + } + } +} + + /*-------------------------------------------------------------------*\ isAlphaUniform \*-------------------------------------------------------------------*/ @@ -1792,7 +1837,7 @@ void CBitmap::releaseMipMaps() \*-------------------------------------------------------------------*/ void CBitmap::resample(sint32 nNewWidth, sint32 nNewHeight) { - nlassert(PixelFormat == RGBA || PixelFormat == Luminance); + nlassert(PixelFormat == RGBA || PixelFormat == Luminance || PixelFormat == AlphaLuminance); bool needRebuild = false; // Deleting mipmaps @@ -1832,6 +1877,58 @@ void CBitmap::resample(sint32 nNewWidth, sint32 nNewHeight) resamplePicture8 (&_Data[0][0], pDestGray, _Width, _Height, nNewWidth, nNewHeight); //logResample("Resample: 60"); } + else if (PixelFormat == AlphaLuminance) + { + pDestui.resize(nNewWidth*nNewHeight*2); + + uint16 *pSrc = (uint16*)&_Data[0][0]; + uint16 *pDest = (uint16*)&pDestui[0]; + + size_t srcSize = _Width*_Width; + uint8 *pSrcGray = new uint8[srcSize]; + uint8 *pSrcAlpha = new uint8[srcSize]; + + // set iterators + uint16 *i = (uint16*)pSrc; + uint16 *iEnd = (uint16*)i + srcSize; + uint8 *iGray = pSrcGray; + uint8 *iAlpha = pSrcAlpha; + + // copy alpha and gray in distinct arrays + while (i < iEnd) + { + *(iGray++) = (*i) & 0xff; + *(iAlpha++) = ((*i) >> 8) & 0xff; + ++i; + } + + size_t destSize = nNewWidth*nNewHeight; + + // resample gray values array + uint8 *pDestGray = new uint8[destSize]; + resamplePicture8(pSrcGray, pDestGray, _Width, _Height, nNewWidth, nNewHeight); + delete[] pSrcGray; + + // resample alpha values array + uint8 *pDestAlpha = new uint8[destSize]; + resamplePicture8(pSrcAlpha, pDestAlpha, _Width, _Height, nNewWidth, nNewHeight); + delete[] pSrcAlpha; + + // set iterators + i = (uint16*)pDest; + iEnd = (uint16*)i + destSize; + iGray = pDestGray; + iAlpha = pDestAlpha; + + // merge alpha and gray in destination array + while (i < iEnd) + { + *(i++) = *(iGray++) | (*(iAlpha++) << 8); + } + + delete[] pDestGray; + delete[] pDestAlpha; + } NLMISC::contReset(_Data[0]); // free memory //logResample("Resample: 70"); @@ -2148,7 +2245,7 @@ void CBitmap::resamplePicture32Fast (const NLMISC::CRGBA *pSrc, NLMISC::CRGBA *p /*-------------------------------------------------------------------*\ - resamplePicture32 + resamplePicture8 \*-------------------------------------------------------------------*/ void CBitmap::resamplePicture8 (const uint8 *pSrc, uint8 *pDest, sint32 nSrcWidth, sint32 nSrcHeight, diff --git a/code/nel/src/misc/cmd_args.cpp b/code/nel/src/misc/cmd_args.cpp index d9370b831..e6211faaf 100644 --- a/code/nel/src/misc/cmd_args.cpp +++ b/code/nel/src/misc/cmd_args.cpp @@ -141,7 +141,7 @@ bool CCmdArgs::needAdditionalArg() const const TArg &arg = _Args[i]; // they don't have any short or long name, but need a name in help - if (arg.shortName.empty() && arg.longName.empty() && !arg.helpName.empty() && arg.required) + if (arg.shortName.empty() && arg.longName.empty() && !arg.helpName.empty() && arg.required && !arg.found) return true; } @@ -363,7 +363,7 @@ bool CCmdArgs::parse(const std::vector &argv) } // process help if requested or if required arguments are missing - if (haveLongArg("help") || (needAdditionalArg() && !haveAdditionalArg())) + if (haveLongArg("help") || needAdditionalArg()) { displayHelp(); return false; @@ -418,7 +418,7 @@ void CCmdArgs::displayHelp() if (!_Description.empty()) { - printf("\n%s", _Description.c_str()); + printf("\n%s\n", _Description.c_str()); } printf("\nWhere options are:\n"); @@ -443,7 +443,6 @@ void CCmdArgs::displayHelp() if (!arg.helpName.empty()) { syntaxes.push_back(toString("-%s <%s>", arg.shortName.c_str(), arg.helpName.c_str())); - syntaxes.push_back(toString("-%s<%s>", arg.shortName.c_str(), arg.helpName.c_str())); } else { @@ -459,12 +458,6 @@ void CCmdArgs::displayHelp() // display first syntax for long argument, --arg syntaxes.push_back(toString("--%s <%s>", arg.longName.c_str(), arg.helpName.c_str())); } - - if (!arg.helpName.empty()) - { - // display second syntax for long argument, --arg= - syntaxes.push_back(toString("--%s=<%s>", arg.longName.c_str(), arg.helpName.c_str())); - } else { syntaxes.push_back(toString("--%s", arg.longName.c_str())); diff --git a/code/nel/src/misc/config_file/config_file.cpp b/code/nel/src/misc/config_file/config_file.cpp index bab1c123b..b1ef3bef6 100644 --- a/code/nel/src/misc/config_file/config_file.cpp +++ b/code/nel/src/misc/config_file/config_file.cpp @@ -412,7 +412,7 @@ void CConfigFile::reparse (bool lookupPaths) if (!CPath::lookup(fn, false).empty()) { ucstring content; - CI18N::readTextFile(fn, content, true, true, true); + CI18N::readTextFile(fn, content, true, true); string utf8 = content.toUtf8(); CMemStream stream; diff --git a/code/nel/src/misc/debug.cpp b/code/nel/src/misc/debug.cpp index 1f0bb4fd1..c9ac2f593 100644 --- a/code/nel/src/misc/debug.cpp +++ b/code/nel/src/misc/debug.cpp @@ -1429,22 +1429,27 @@ int getLastError() std::string formatErrorMessage(int errorCode) { #ifdef NL_OS_WINDOWS - LPVOID lpMsgBuf; - FormatMessage( + LPVOID lpMsgBuf = NULL; + DWORD len = FormatMessageW( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - (LPTSTR) &lpMsgBuf, + (LPWSTR) &lpMsgBuf, 0, NULL ); - string ret = (char*)lpMsgBuf; + // empty buffer, an error occured + if (len == 0) return toString("FormatMessage returned error %d", getLastError()); + + // convert wchar_t* to std::string + string ret = wideToUtf8(lpMsgBuf); + // Free the buffer. - LocalFree( lpMsgBuf ); + LocalFree(lpMsgBuf); return ret; #else diff --git a/code/nel/src/misc/diff_tool.cpp b/code/nel/src/misc/diff_tool.cpp index f57746b1a..2b2a490bc 100644 --- a/code/nel/src/misc/diff_tool.cpp +++ b/code/nel/src/misc/diff_tool.cpp @@ -117,7 +117,7 @@ bool loadStringFile(const std::string filename, vector &stringInfos */ ucstring text; - CI18N::readTextFile(filename, text, false, false, true, CI18N::LINE_FMT_CRLF); + CI18N::readTextFile(filename, text, false, true, CI18N::LINE_FMT_LF); // CI18N::readTextBuffer(buffer, size, text); // delete [] buffer; @@ -154,7 +154,7 @@ bool loadStringFile(const std::string filename, vector &stringInfos if (!CI18N::parseLabel(first, last, si.Identifier)) { uint32 line = countLine(text, first); - nlwarning("DT: Fatal : In '%s', line %u: Invalid label after '%s'\n", + nlwarning("DT: Fatal : In '%s', line %u: Invalid label after '%s'", filename.c_str(), line, lastLabel.c_str()); @@ -167,7 +167,7 @@ bool loadStringFile(const std::string filename, vector &stringInfos if (!CI18N::parseMarkedString(openMark, closeMark, first, last, si.Text)) { uint32 line = countLine(text, first); - nlwarning("DT: Fatal : In '%s', line %u: Invalid text value for label %s\n", + nlwarning("DT: Fatal : In '%s', line %u: Invalid text value for label %s", filename.c_str(), line, lastLabel.c_str()); @@ -181,7 +181,7 @@ bool loadStringFile(const std::string filename, vector &stringInfos if (!CI18N::parseMarkedString(openMark, closeMark, first, last, si.Text2)) { uint32 line = countLine(text, first); - nlwarning("DT: Fatal: In '%s' line %u: Invalid text2 value label %s\n", + nlwarning("DT: Fatal: In '%s' line %u: Invalid text2 value label %s", filename.c_str(), line, lastLabel.c_str()); @@ -313,7 +313,7 @@ bool readPhraseFile(const std::string &filename, vector &phrases, bool { ucstring doc; - CI18N::readTextFile(filename, doc, false, false, true, CI18N::LINE_FMT_CRLF); + CI18N::readTextFile(filename, doc, false, true, CI18N::LINE_FMT_LF); return readPhraseFileFromString(doc, filename, phrases, forceRehash); } @@ -416,9 +416,14 @@ bool readPhraseFileFromString(ucstring const& doc, const std::string &filename, phrase.Clauses.size()+1); return false; } - clause.Conditions += "(" + cond + ") "; + + // only prepend a space if required + if (!clause.Conditions.empty()) clause.Conditions += " "; + + clause.Conditions += "(" + cond + ")"; CI18N::skipWhiteSpace(first, last, &clause.Comments); } + if (first == last) { nlwarning("DT: in '%s': Found end of file in non closed block for phrase %s\n", @@ -577,7 +582,7 @@ ucstring preparePhraseFile(const vector &phrases, bool removeDiffCommen if (!c.Comments.empty()) { ucstring comment = tabLines(1, c.Comments); - ret += comment; // + '\r'+'\n'; + ret += comment; // + '\n'; } if (!c.Conditions.empty()) { @@ -626,7 +631,7 @@ bool loadExcelSheet(const string filename, TWorksheet &worksheet, bool checkUniq fp.close(); ucstring str; - CI18N::readTextFile(filename, str, false, false, false, CI18N::LINE_FMT_CRLF); + CI18N::readTextFile(filename, str, false, false, CI18N::LINE_FMT_LF); if (!readExcelSheet(str, worksheet, checkUnique)) return false; @@ -646,6 +651,8 @@ bool readExcelSheet(const ucstring &str, TWorksheet &worksheet, bool checkUnique strArray[strArray.size()-1]= 0; memcpy(&strArray[0], &str[0], str.size()*sizeof(ucchar)); + // size of new line characters + size_t sizeOfNl = nl.length(); // **** Build array of lines. just point to strArray, and fill 0 where appropriated vector lines; @@ -660,10 +667,10 @@ bool readExcelSheet(const ucstring &str, TWorksheet &worksheet, bool checkUnique // nldebug("Found line : [%s]", ucstring(&strArray[lastPos]).toString().c_str()); lines.push_back(&strArray[lastPos]); } - lastPos = pos + 2; + lastPos = pos + sizeOfNl; } - // Must add last line if no \r\n ending + // Must add last line if no \n ending if (lastPos < str.size()) { pos= str.size(); diff --git a/code/nel/src/misc/hierarchical_timer.cpp b/code/nel/src/misc/hierarchical_timer.cpp index 62dc0786a..70fb98d9f 100644 --- a/code/nel/src/misc/hierarchical_timer.cpp +++ b/code/nel/src/misc/hierarchical_timer.cpp @@ -1082,7 +1082,7 @@ NLMISC_CATEGORISED_COMMAND(nel,displayMeasures, "display hierarchical timer", "[ } sint depth = 0; - bool hasDepth = (sscanf(args[0].c_str(), "%d", &depth) == 1 || (args.size() > 1 && sscanf(args[1].c_str(), "%d", &depth) == 1)); + bool hasDepth = (fromString(args[0], depth) || (args.size() > 1 && fromString(args[1], depth))); CASE_DISPLAYMEASURES(NoSort, -3) CASE_DISPLAYMEASURES(TotalTime, -2) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index a170f6d20..3d617bef4 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -502,25 +502,39 @@ void CI18N::skipWhiteSpace(ucstring::const_iterator &it, ucstring::const_iterato if (storeComments && *it == '/' && it+1 != last && *(it+1) == '/') { // found a one line C comment. Store it until end of line. - while (it != last && *it != '\n') + while (it != last && (*it != '\n' && *it != '\r')) storeComments->push_back(*it++); + // store the final '\n' if (it != last) - storeComments->push_back(*it++); + storeComments->push_back('\n'); } else if (storeComments && *it == '/' && it+1 != last && *(it+1) == '*') { // found a multi line C++ comment. store until we found the closing '*/' - while (it != last && !(*it == '*' && it+1 != last && *(it+1) == '/')) - storeComments->push_back(*it++); + while (it != last && !(*it == '*' && it + 1 != last && *(it + 1) == '/')) + { + // don't put \r + if (*it == '\r') + { + // skip it + ++it; + } + else + { + storeComments->push_back(*it++); + } + } + // store the final '*' if (it != last) storeComments->push_back(*it++); + // store the final '/' if (it != last) storeComments->push_back(*it++); + // and a new line. - storeComments->push_back('\r'); storeComments->push_back('\n'); } else @@ -656,7 +670,6 @@ bool CI18N::parseMarkedString(ucchar openMark, ucchar closeMark, ucstring::const void CI18N::readTextFile(const string &filename, ucstring &result, - bool forceUtf8, bool fileLookup, bool preprocess, TLineFormat lineFmt, @@ -666,7 +679,7 @@ void CI18N::readTextFile(const string &filename, TReadContext readContext; // call the inner function - _readTextFile(filename, result, forceUtf8, fileLookup, preprocess, lineFmt, warnIfIncludesNotFound, readContext); + _readTextFile(filename, result, fileLookup, preprocess, lineFmt, warnIfIncludesNotFound, readContext); if (!readContext.IfStack.empty()) { @@ -709,7 +722,6 @@ void CI18N::skipLine(ucstring::const_iterator &it, ucstring::const_iterator end, void CI18N::_readTextFile(const string &filename, ucstring &result, - bool forceUtf8, bool fileLookup, bool preprocess, TLineFormat lineFmt, @@ -743,7 +755,7 @@ void CI18N::_readTextFile(const string &filename, // Transform the string in ucstring according to format header if (!text.empty()) - readTextBuffer((uint8*)&text[0], (uint)text.size(), result, forceUtf8); + readTextBuffer((uint8*)&text[0], (uint)text.size(), result); if (preprocess) { @@ -819,7 +831,7 @@ void CI18N::_readTextFile(const string &filename, subFilename.c_str()); ucstring inserted; - _readTextFile(subFilename, inserted, forceUtf8, fileLookup, preprocess, lineFmt, warnIfIncludesNotFound, readContext); + _readTextFile(subFilename, inserted, fileLookup, preprocess, lineFmt, warnIfIncludesNotFound, readContext); final += inserted; } } @@ -873,7 +885,7 @@ void CI18N::_readTextFile(const string &filename, subFilename.c_str()); ucstring inserted; - _readTextFile(subFilename, inserted, forceUtf8, fileLookup, preprocess, lineFmt, warnIfIncludesNotFound, readContext); + _readTextFile(subFilename, inserted, fileLookup, preprocess, lineFmt, warnIfIncludesNotFound, readContext); final += inserted; } } @@ -1109,7 +1121,7 @@ void CI18N::_readTextFile(const string &filename, temp.append(result.begin()+lastPos, result.end()); result.swap(temp); - temp = ""; + temp.clear(); // second loop with the '\n' pos = 0; @@ -1137,28 +1149,13 @@ void CI18N::_readTextFile(const string &filename, } } -void CI18N::readTextBuffer(uint8 *buffer, uint size, ucstring &result, bool forceUtf8) +void CI18N::readTextBuffer(uint8 *buffer, uint size, ucstring &result) { static uint8 utf16Header[] = { 0xffu, 0xfeu }; static uint8 utf16RevHeader[] = { 0xfeu, 0xffu }; static uint8 utf8Header[] = { 0xefu, 0xbbu, 0xbfu }; - if (forceUtf8) - { - if (size>=3 && - buffer[0]==utf8Header[0] && - buffer[1]==utf8Header[1] && - buffer[2]==utf8Header[2] - ) - { - // remove utf8 header - buffer+= 3; - size-=3; - } - string text((char*)buffer, size); - result.fromUtf8(text); - } - else if (size>=3 && + if (size>=3 && buffer[0]==utf8Header[0] && buffer[1]==utf8Header[1] && buffer[2]==utf8Header[2] @@ -1211,10 +1208,9 @@ void CI18N::readTextBuffer(uint8 *buffer, uint size, ucstring &result, bool forc } else { - // hum.. ascii read ? - // so, just do a direct conversion + // all text files without BOM are now parsed as UTF-8 by default string text((char*)buffer, size); - result = text; + result.fromUtf8(text); } } diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index 9737589f7..b9a49b04b 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -2148,7 +2148,7 @@ bool CFile::setFileModificationDate(const std::string &filename, uint32 modTime) FILETIME accessFileTime; FILETIME modFileTime; - // read the current the files times + // read the current file time if (GetFileTime(h, &creationFileTime, &accessFileTime, &modFileTime) == 0) { nlwarning("Can't set modification date on file '%s' : %s", fn.c_str(), formatErrorMessage(getLastError()).c_str()); diff --git a/code/nel/src/misc/system_utils.cpp b/code/nel/src/misc/system_utils.cpp index 81bb5246b..480e1c9a1 100644 --- a/code/nel/src/misc/system_utils.cpp +++ b/code/nel/src/misc/system_utils.cpp @@ -76,12 +76,21 @@ namespace NLMISC { nlWindow CSystemUtils::s_window = EmptyWindow; +#ifdef NL_OS_WINDOWS +static bool s_mustUninit = false; +#endif + bool CSystemUtils::init() { #ifdef NL_OS_WINDOWS // initialize COM - HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); - if (FAILED(hr)) return false; + if (!s_mustUninit) + { + HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); + if (FAILED(hr)) return false; + + s_mustUninit = true; + } #endif return true; @@ -91,7 +100,12 @@ bool CSystemUtils::uninit() { #ifdef NL_OS_WINDOWS // uninitialize COM - CoUninitialize(); + if (s_mustUninit) + { + CoUninitialize(); + + s_mustUninit = false; + } #endif return true; diff --git a/code/nel/src/misc/win32_util.cpp b/code/nel/src/misc/win32_util.cpp index 7631ac7b2..a99ca57d7 100644 --- a/code/nel/src/misc/win32_util.cpp +++ b/code/nel/src/misc/win32_util.cpp @@ -40,7 +40,10 @@ void CWin32Util::localizeWindow(HWND wnd) std::string winText = wideToUtf8(str); if (CI18N::hasTranslation(winText)) { - SetWindowTextW(wnd, (const WCHAR *) CI18N::get(winText).c_str()); + if (!SetWindowTextW(wnd, (const WCHAR *) CI18N::get(winText).c_str())) + { + nlwarning("SetWindowText failed: %s", formatErrorMessage(getLastError()).c_str()); + } } } HWND currSon = GetWindow(wnd, GW_CHILD); diff --git a/code/nel/src/misc/win_displayer.cpp b/code/nel/src/misc/win_displayer.cpp index c9e81bbb3..37db08fbf 100644 --- a/code/nel/src/misc/win_displayer.cpp +++ b/code/nel/src/misc/win_displayer.cpp @@ -217,8 +217,13 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) ucstring ucs; // convert the text from UTF-8 to unicode ucs.fromUtf8(cwd->_History[cwd->_PosInHistory]); + // set the text as unicode string - SetWindowTextW(cwd->_HInputEdit, (LPCWSTR)ucs.c_str()); + if (!SetWindowTextW(cwd->_HInputEdit, (LPCWSTR)ucs.c_str())) + { + nlwarning("SetWindowText failed: %s", formatErrorMessage(getLastError()).c_str()); + } + SendMessageA (cwd->_HInputEdit, EM_SETSEL, (WPARAM)ucs.size(), (LPARAM)ucs.size()); } } @@ -234,8 +239,13 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) ucstring ucs; // convert the text from UTF-8 to unicode ucs.fromUtf8(cwd->_History[cwd->_PosInHistory]); + // set the text as unicode string - SetWindowTextW(cwd->_HInputEdit, (LPCWSTR)ucs.c_str()); + if (!SetWindowTextW(cwd->_HInputEdit, (LPCWSTR)ucs.c_str())) + { + nlwarning("SetWindowText failed: %s", formatErrorMessage(getLastError()).c_str()); + } + SendMessageA (cwd->_HInputEdit, EM_SETSEL, (WPARAM)ucs.size(), (LPARAM)ucs.size()); } } @@ -352,7 +362,10 @@ void CWinDisplayer::setTitleBar (const string &titleBar) nldebug("SERVICE: Set title bar to '%s'", wn.c_str()); - SetWindowTextW (_HWnd, (LPWSTR)ucstring::makeFromUtf8(wn).c_str()); + if (!SetWindowTextW(_HWnd, (LPWSTR)ucstring::makeFromUtf8(wn).c_str())) + { + nlwarning("SetWindowText failed: %s", formatErrorMessage(getLastError()).c_str()); + } } void CWinDisplayer::open (string titleBar, bool iconified, sint x, sint y, sint w, sint h, sint hs, sint fs, const std::string &fn, bool ww, CLog *log) diff --git a/code/nel/src/net/CMakeLists.txt b/code/nel/src/net/CMakeLists.txt index d045d47e8..a3a909ea6 100644 --- a/code/nel/src/net/CMakeLists.txt +++ b/code/nel/src/net/CMakeLists.txt @@ -9,8 +9,8 @@ IF(WITH_GTK) IF(GTK2_FOUND) INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) ADD_DEFINITIONS(-DNL_USE_GTK) - ENDIF(GTK2_FOUND) -ENDIF(WITH_GTK) + ENDIF() +ENDIF() TARGET_LINK_LIBRARIES(nelnet nelmisc) NL_DEFAULT_PROPS(nelnet "NeL, Library: NeL Net") @@ -20,10 +20,10 @@ NL_ADD_LIB_SUFFIX(nelnet) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelnet ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.h ${CMAKE_CURRENT_SOURCE_DIR}/stdnet.cpp) -ENDIF(WITH_PCH) +ENDIF() NL_GEN_PC(nel-net.pc) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelnet LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/pacs/CMakeLists.txt b/code/nel/src/pacs/CMakeLists.txt index b0e1a9281..70a80500a 100644 --- a/code/nel/src/pacs/CMakeLists.txt +++ b/code/nel/src/pacs/CMakeLists.txt @@ -15,10 +15,10 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelpacs ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpacs.cpp) -ENDIF(WITH_PCH) +ENDIF() NL_GEN_PC(nel-pacs.pc) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelpacs LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/pacs/global_retriever.cpp b/code/nel/src/pacs/global_retriever.cpp index 27b32fbf1..6dfc3a712 100644 --- a/code/nel/src/pacs/global_retriever.cpp +++ b/code/nel/src/pacs/global_retriever.cpp @@ -1221,7 +1221,7 @@ void NLPACS::CGlobalRetriever::findCollisionChains(CCollisionSurfaceTemp &cst, c if (!localRetriever.isLoaded()) { - nlwarning("local retriever %d in %s not loaded, findCollisionChains in this retriever aborted", localRetrieverId, _RetrieverBank->getNamePrefix().c_str()); + nldebug("local retriever %d in %s not loaded, findCollisionChains in this retriever aborted", localRetrieverId, _RetrieverBank->getNamePrefix().c_str()); continue; } diff --git a/code/nel/src/pipeline/CMakeLists.txt b/code/nel/src/pipeline/CMakeLists.txt index 47ab9a376..d6e5705de 100644 --- a/code/nel/src/pipeline/CMakeLists.txt +++ b/code/nel/src/pipeline/CMakeLists.txt @@ -15,4 +15,4 @@ NL_ADD_LIB_SUFFIX(nelpipeline) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelpipeline LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/src/sound/CMakeLists.txt b/code/nel/src/sound/CMakeLists.txt index a78b455da..e4831c643 100644 --- a/code/nel/src/sound/CMakeLists.txt +++ b/code/nel/src/sound/CMakeLists.txt @@ -93,7 +93,7 @@ TARGET_LINK_LIBRARIES(nelsound ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY}) IF(WITH_STATIC) # Add libogg dependency only if target is static because to libvorbisfile TARGET_LINK_LIBRARIES(nelsound ${OGG_LIBRARY}) -ENDIF(WITH_STATIC) +ENDIF() INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) @@ -108,12 +108,12 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelsound ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound.cpp) -ENDIF(WITH_PCH) +ENDIF() NL_GEN_PC(nel-sound.pc) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelsound LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() ADD_SUBDIRECTORY(driver) diff --git a/code/nel/src/sound/audio_decoder.cpp b/code/nel/src/sound/audio_decoder.cpp index f4884a427..6e9e42b61 100644 --- a/code/nel/src/sound/audio_decoder.cpp +++ b/code/nel/src/sound/audio_decoder.cpp @@ -94,7 +94,7 @@ IAudioDecoder *IAudioDecoder::createAudioDecoder(const std::string &type, NLMISC } } -bool IAudioDecoder::getInfo(const std::string &filepath, std::string &artist, std::string &title) +bool IAudioDecoder::getInfo(const std::string &filepath, std::string &artist, std::string &title, float &length) { std::string lookup = CPath::lookup(filepath, false); if (lookup.empty()) @@ -111,7 +111,7 @@ bool IAudioDecoder::getInfo(const std::string &filepath, std::string &artist, st ifile.setCacheFileOnOpen(false); ifile.allowBNPCacheFileOnOpen(false); if (ifile.open(lookup)) - return CAudioDecoderVorbis::getInfo(&ifile, artist, title); + return CAudioDecoderVorbis::getInfo(&ifile, artist, title, length); nlwarning("Unable to open: '%s'", filepath.c_str()); } diff --git a/code/nel/src/sound/audio_decoder_vorbis.cpp b/code/nel/src/sound/audio_decoder_vorbis.cpp index 1c11c32d7..fdda6e742 100644 --- a/code/nel/src/sound/audio_decoder_vorbis.cpp +++ b/code/nel/src/sound/audio_decoder_vorbis.cpp @@ -117,7 +117,7 @@ CAudioDecoderVorbis::~CAudioDecoderVorbis() } /// Get information on a music file (only artist and title at the moment). -bool CAudioDecoderVorbis::getInfo(NLMISC::IStream *stream, std::string &artist, std::string &title) +bool CAudioDecoderVorbis::getInfo(NLMISC::IStream *stream, std::string &artist, std::string &title, float &length) { CAudioDecoderVorbis mbv(stream, false); // just opens and closes the oggvorbisfile thing :) vorbis_comment *vc = ov_comment(&mbv._OggVorbisFile, -1); @@ -125,6 +125,7 @@ bool CAudioDecoderVorbis::getInfo(NLMISC::IStream *stream, std::string &artist, if (title_c) title = title_c; else title.clear(); char *artist_c = vorbis_comment_query(vc, "artist", 0); if (artist_c) artist = artist_c; else artist.clear(); + length = (float)ov_time_total(&mbv._OggVorbisFile, -1); return true; } diff --git a/code/nel/src/sound/audio_mixer_user.cpp b/code/nel/src/sound/audio_mixer_user.cpp index 9ac90b3c7..4d86df788 100644 --- a/code/nel/src/sound/audio_mixer_user.cpp +++ b/code/nel/src/sound/audio_mixer_user.cpp @@ -1797,7 +1797,7 @@ void CAudioMixerUser::addSource( CSourceCommon *source ) _Sources.insert( source ); // _profile(( "AM: ADDSOURCE, SOUND: %d, TRACK: %p, NAME=%s", source->getSound(), source->getTrack(), -// source->getSound() && (source->getSound()->getName()!="") ? source->getSound()->getName().c_str() : "" )); +// source->getSound() && (!source->getSound()->getName().empty()) ? source->getSound()->getName().c_str() : "" )); } @@ -2684,17 +2684,17 @@ float CAudioMixerUser::getMusicLength() } // *************************************************************************** -bool CAudioMixerUser::getSongTitle(const std::string &filename, std::string &result) +bool CAudioMixerUser::getSongTitle(const std::string &filename, std::string &result, float &length) { if (_SoundDriver) { std::string artist; std::string title; - if (!_SoundDriver->getMusicInfo(filename, artist, title)) + if (!_SoundDriver->getMusicInfo(filename, artist, title, length)) { // use 3rd party libraries supported formats - IAudioDecoder::getInfo(filename, artist, title); + IAudioDecoder::getInfo(filename, artist, title, length); } if (!title.empty()) @@ -2715,6 +2715,7 @@ bool CAudioMixerUser::getSongTitle(const std::string &filename, std::string &res } result = "???"; + length = 0; return false; } diff --git a/code/nel/src/sound/driver/CMakeLists.txt b/code/nel/src/sound/driver/CMakeLists.txt index 09d65440a..320c4ee05 100644 --- a/code/nel/src/sound/driver/CMakeLists.txt +++ b/code/nel/src/sound/driver/CMakeLists.txt @@ -12,24 +12,24 @@ NL_ADD_LIB_SUFFIX(nelsnd_lowlevel) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nelsnd_lowlevel ${CMAKE_CURRENT_SOURCE_DIR}/stdsound_lowlevel.h ${CMAKE_CURRENT_SOURCE_DIR}/stdsound_lowlevel.cpp) -ENDIF(WITH_PCH) +ENDIF() IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS nelsnd_lowlevel LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() IF(WITH_DRIVER_OPENAL) ADD_SUBDIRECTORY(openal) -ENDIF(WITH_DRIVER_OPENAL) +ENDIF() IF(WITH_DRIVER_FMOD) ADD_SUBDIRECTORY(fmod) -ENDIF(WITH_DRIVER_FMOD) +ENDIF() IF(WITH_DRIVER_DSOUND) ADD_SUBDIRECTORY(dsound) -ENDIF(WITH_DRIVER_DSOUND) +ENDIF() IF(WITH_DRIVER_XAUDIO2) ADD_SUBDIRECTORY(xaudio2) -ENDIF(WITH_DRIVER_XAUDIO2) +ENDIF() diff --git a/code/nel/src/sound/driver/dsound/sound_driver_dsound.h b/code/nel/src/sound/driver/dsound/sound_driver_dsound.h index 14872c1e1..e928cf137 100644 --- a/code/nel/src/sound/driver/dsound/sound_driver_dsound.h +++ b/code/nel/src/sound/driver/dsound/sound_driver_dsound.h @@ -115,7 +115,7 @@ public: * \param artist returns the song artist (empty if not available) * \param title returns the title (empty if not available) */ - virtual bool getMusicInfo(const std::string & /* filepath */, std::string &artist, std::string &title) { artist.clear(); title.clear(); return false; } + virtual bool getMusicInfo(const std::string & /* filepath */, std::string &artist, std::string &title, float &length) { artist.clear(); title.clear(); length = 0.f; return false; } private: diff --git a/code/nel/src/sound/driver/fmod/sound_driver_fmod.cpp b/code/nel/src/sound/driver/fmod/sound_driver_fmod.cpp index 6ca480ce7..07455b963 100644 --- a/code/nel/src/sound/driver/fmod/sound_driver_fmod.cpp +++ b/code/nel/src/sound/driver/fmod/sound_driver_fmod.cpp @@ -496,7 +496,7 @@ bool getTag (std::string &result, const char *tag, FSOUND_STREAM *stream) * \param artist returns the song artist (empty if not available) * \param title returns the title (empty if not available) */ -bool CSoundDriverFMod::getMusicInfo(const std::string &filepath, std::string &artist, std::string &title) +bool CSoundDriverFMod::getMusicInfo(const std::string &filepath, std::string &artist, std::string &title, float &length) { /* Open a stream, get the tag if it exists, close the stream */ string pathName = CPath::lookup(filepath, false); @@ -526,6 +526,8 @@ bool CSoundDriverFMod::getMusicInfo(const std::string &filepath, std::string &ar { getTag(artist, "ARTIST", stream); getTag(title, "TITLE", stream); + // get length of the music in seconds + length = (float)FSOUND_Stream_GetLengthMs(stream) / 1000.f; FSOUND_Stream_Close(stream); return true; } diff --git a/code/nel/src/sound/driver/fmod/sound_driver_fmod.h b/code/nel/src/sound/driver/fmod/sound_driver_fmod.h index 8beabe562..db82cde6e 100644 --- a/code/nel/src/sound/driver/fmod/sound_driver_fmod.h +++ b/code/nel/src/sound/driver/fmod/sound_driver_fmod.h @@ -116,7 +116,7 @@ public: * \param artist returns the song artist (empty if not available) * \param title returns the title (empty if not available) */ - virtual bool getMusicInfo(const std::string &filepath, std::string &artist, std::string &title); + virtual bool getMusicInfo(const std::string &filepath, std::string &artist, std::string &title, float &length); // also check that the channel still exist (avoid any free problem) void markMusicChannelEnded(void *stream, CMusicChannelFMod *musicChannel); diff --git a/code/nel/tools/3d/CMakeLists.txt b/code/nel/tools/3d/CMakeLists.txt index 034fc5f55..ff5c37db0 100644 --- a/code/nel/tools/3d/CMakeLists.txt +++ b/code/nel/tools/3d/CMakeLists.txt @@ -48,9 +48,9 @@ IF(WIN32 AND WITH_3D) IF(MAXSDK_FOUND) ADD_SUBDIRECTORY(plugin_max) ADD_SUBDIRECTORY(ligo) - ENDIF(MAXSDK_FOUND) - ENDIF(WITH_NEL_MAXPLUGIN) - ENDIF(MFC_FOUND) + ENDIF() + ENDIF() + ENDIF() ENDIF() IF(WITH_NEL_TOOLS AND WITH_3D) @@ -59,8 +59,8 @@ IF(WITH_NEL_TOOLS AND WITH_3D) IF(MFC_FOUND) ADD_SUBDIRECTORY(object_viewer_exe) ADD_SUBDIRECTORY(tile_edit) - ENDIF(MFC_FOUND) - ENDIF(WIN32) + ENDIF() + ENDIF() IF(WITH_QT OR WITH_QT5) ADD_SUBDIRECTORY(tile_edit_qt) diff --git a/code/nel/tools/3d/build_interface/main.cpp b/code/nel/tools/3d/build_interface/main.cpp index 1b13a0f71..a8f854721 100644 --- a/code/nel/tools/3d/build_interface/main.cpp +++ b/code/nel/tools/3d/build_interface/main.cpp @@ -24,8 +24,7 @@ #include "nel/misc/log.h" #include "nel/misc/path.h" #include "nel/misc/uv.h" - -//#include "windows.h" +#include "nel/misc/cmd_args.h" #include #include @@ -36,21 +35,9 @@ using namespace std; using namespace NLMISC; // *************************************************************************** -//char sExeDir[MAX_PATH]; -std::string sExeDir; -NLMISC::CApplicationContext _ApplicationContext; - -void outString (const string &sText) +void outString(const string &sText) { - std::string sCurDir = CPath::getCurrentPath(); - CPath::setCurrentPath(sExeDir.c_str()); - //char sCurDir[MAX_PATH]; - //GetCurrentDirectory (MAX_PATH, sCurDir); - //SetCurrentDirectory (sExeDir); - NLMISC::createDebug (); - NLMISC::InfoLog->displayRaw(sText.c_str()); - //SetCurrentDirectory (sCurDir); - CPath::setCurrentPath(sCurDir.c_str()); + printf("%s\n", sText.c_str()); } // *************************************************************************** @@ -59,7 +46,7 @@ const uint32 posStep= 4; // *************************************************************************** // Try all position to put pSrc in pDst -bool tryAllPos (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 &x, sint32 &y) +bool tryAllPos(NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 &x, sint32 &y) { uint32 i, j; CObjectVector &rSrcPix = pSrc->getPixels(); @@ -99,7 +86,7 @@ bool tryAllPos (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 &x, sint32 } // *************************************************************************** -void putPixel(uint8 *dst, uint8 *src, bool alphaTransfert) +void putPixel(uint8 *dst, uint8 *src, bool alphaTransfert) { dst[0] = src[0]; dst[1] = src[1]; @@ -111,7 +98,7 @@ void putPixel(uint8 *dst, uint8 *src, bool alphaTransfert) } // *************************************************************************** -bool putIn (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 x, sint32 y, bool alphaTransfert=true) +bool putIn(NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 x, sint32 y, bool alphaTransfert=true) { uint8 *rSrcPix = &pSrc->getPixels()[0]; uint8 *rDstPix = &pDst->getPixels()[0]; @@ -158,18 +145,17 @@ bool putIn (NLMISC::CBitmap *pSrc, NLMISC::CBitmap *pDst, sint32 x, sint32 y, bo } // *************************************************************************** -string getBaseName (const string &fullname) +string getBaseName(const string &fullname) { - string sTmp2; + string basename; string::size_type pos = fullname.rfind('_'); - if (pos != string::npos) - sTmp2 = fullname.substr(0, pos+1); - return sTmp2; + if (pos != string::npos) basename = fullname.substr(0, pos+1); + return basename; } // *************************************************************************** // resize the bitmap to the next power of 2 and preserve content -void enlargeCanvas (NLMISC::CBitmap &b) +void enlargeCanvas(NLMISC::CBitmap &b) { sint32 nNewWidth = b.getWidth(), nNewHeight = b.getHeight(); if (nNewWidth > nNewHeight) @@ -188,65 +174,209 @@ void enlargeCanvas (NLMISC::CBitmap &b) b = b2; } +bool writeFileDependingOnFilename(const std::string &filename, CBitmap &bitmap) +{ + NLMISC::COFile out; + + if (out.open(filename)) + { + if (toLower(filename).find(".png") != string::npos) + { + bitmap.writePNG(out, 32); + } + else + { + bitmap.writeTGA(out, 32); + } + + out.close(); + + return true; + } + + return false; +} + + // *************************************************************************** // main // *************************************************************************** -int main(int nNbArg, char **ppArgs) +int main(int argc, char **argv) { - //GetCurrentDirectory (MAX_PATH, sExeDir); - sExeDir = CPath::getCurrentPath(); + CApplicationContext applicationContext; + + // Parse Command Line. + NLMISC::CCmdArgs args; + + args.setDescription("Build a huge interface texture from several small elements to optimize video memory usage."); + args.addArg("f", "format", "format", "Output format (png or tga)"); + args.addArg("s", "subset", "existing_uv_txt_name", "Build a subset of an existing interface definition while preserving the existing texture ids, to support freeing up VRAM by switching to the subset without rebuilding the entire interface."); + args.addArg("x", "extract", "", "Extract all interface elements from to ."); + args.addAdditionalArg("output_filename", "PNG or TGA file to generate", true); + args.addAdditionalArg("input_path", "Path that containts interfaces elements", false); + + if (!args.parse(argc, argv)) return 1; - if (nNbArg < 3) - { - outString ("ERROR : Wrong number of arguments\n"); - outString ("USAGE : build_interface [-s] [path_maps2] [path_maps3] ....\n"); - outString (" -s : build a subset of an existing interface definition while preserving the existing texture ids,"); - outString (" to support freeing up VRAM by switching to the subset without rebuilding the entire interface\n"); - return -1; - } - // build as a subset of existing interface bool buildSubset = false; string existingUVfilename; - list inputDirs; - for ( uint i=1; (sint)i inputDirs = args.getAdditionalArg("input_path"); + + string fmtName = args.getAdditionalArg("output_filename").front(); + + // append PNG extension if no one provided + if (fmtName.rfind('.') == string::npos) fmtName += "." + (outputFormat.empty() ? "png":outputFormat); + + if (extractElements) + { + if (inputDirs.empty()) + { + outString(toString("ERROR: No input directories specified")); + return -1; + } + + // name of UV file + existingUVfilename = fmtName.substr(0, fmtName.rfind('.')); + existingUVfilename += ".txt"; + + // Load existing UV file + CIFile iFile; + string filename = CPath::lookup(existingUVfilename, false); + + if (filename.empty() || !iFile.open(filename)) + { + outString(toString("ERROR: Unable to open %s", existingUVfilename.c_str())); + return -1; + } + + // Load existing bitmap file + CIFile bitmapFile; + + if (!bitmapFile.open(fmtName)) + { + outString(toString("ERROR: Unable to open %s", fmtName.c_str())); + return -1; + } + + // load bitmap + CBitmap textureBitmap; + uint8 colors = textureBitmap.load(bitmapFile); + + // file already loaded in memory, close it + bitmapFile.close(); + + if (colors != 32) + { + outString(toString("ERROR: %s is not a RGBA bitmap", existingUVfilename.c_str())); + return -1; + } + + // make sure transparent pixels are black + textureBitmap.makeTransparentPixelsBlack(); + + float textureWidth = (float)textureBitmap.getWidth(); + float textureHeight = (float)textureBitmap.getHeight(); + + char bufTmp[256], tgaName[256]; + string sTGAname; + float uvMinU, uvMinV, uvMaxU, uvMaxV; + while (!iFile.eof()) + { + iFile.getline(bufTmp, 256); + + if (sscanf(bufTmp, "%s %f %f %f %f", tgaName, &uvMinU, &uvMinV, &uvMaxU, &uvMaxV) != 5) + { + nlwarning("Can't parse %s", bufTmp); + continue; + } + + float xf = uvMinU * textureWidth; + float yf = uvMinV * textureHeight; + float widthf = (uvMaxU - uvMinU) * textureWidth; + float heightf = (uvMaxV - uvMinV) * textureHeight; + + uint x = (uint)xf; + uint y = (uint)yf; + uint width = (uint)widthf; + uint height = (uint)heightf; + + if ((float)x != xf || (float)y != yf || (float)width != widthf || (float)height != heightf) + { + nlwarning("Wrong round"); + } + + if (width && height) + { + // create bitmap + CBitmap bitmap; + bitmap.resize(width, height); + bitmap.blit(textureBitmap, x, y, width, height, 0, 0); + + sTGAname = inputDirs.front() + "/" + tgaName; + + // force specific format instead of using original one + if (!outputFormat.empty()) + { + sTGAname = sTGAname.substr(0, sTGAname.rfind('.')); + sTGAname += "." + outputFormat; + } + + // write the file + if (writeFileDependingOnFilename(sTGAname, bitmap)) + { + outString(toString("Writing file %s", sTGAname.c_str())); + } + else + { + outString(toString("Unable to writing file %s", sTGAname.c_str())); + } + } + else + { + outString(toString("Bitmap with wrong size")); + } + } + + return 0; + } + vector AllMapNames; - list::iterator it = inputDirs.begin(); - list::iterator itEnd = inputDirs.end(); + vector::iterator it = inputDirs.begin(), itEnd = inputDirs.end(); + while( it != itEnd ) { string sDir = *it++; + if( !CFile::isDirectory(sDir) ) { - outString (string("ERROR : directory ") + sDir + " does not exist\n"); + outString(toString("ERROR: directory %s does not exist", sDir.c_str())); return -1; } + CPath::getPathContent(sDir, false, false, true, AllMapNames); } @@ -264,13 +394,16 @@ int main(int nNbArg, char **ppArgs) { pBtmp = new NLMISC::CBitmap; NLMISC::CIFile inFile; - if (!inFile.open( AllMapNames[i] )) throw NLMISC::Exception("Unable to open " + AllMapNames[i]); + + if (!inFile.open(AllMapNames[i])) throw NLMISC::Exception(toString("Unable to open %s", AllMapNames[i].c_str())); uint8 colors = pBtmp->load(inFile); + if (!colors) throw NLMISC::Exception(toString("%s is not a bitmap", AllMapNames[i].c_str())); + if (pBtmp->getPixelFormat() != CBitmap::RGBA) { - nlwarning("Converting %s to RGBA (32 bits), originally using %u bits...", AllMapNames[i].c_str(), (uint)colors); + outString(toString("Converting %s to RGBA (32 bits), originally using %u bits...", AllMapNames[i].c_str(), (uint)colors)); pBtmp->convertToType(CBitmap::RGBA); } @@ -280,7 +413,7 @@ int main(int nNbArg, char **ppArgs) { if (pBtmp) delete pBtmp; - outString (string("ERROR :") + e.what()); + outString(toString("ERROR : %s", e.what())); return -1; } } @@ -314,6 +447,7 @@ int main(int nNbArg, char **ppArgs) vector UVMin, UVMax; UVMin.resize (mapSize, NLMISC::CUV(0.0f, 0.0f)); UVMax.resize (mapSize, NLMISC::CUV(0.0f, 0.0f)); + for (sint i = 0; i < mapSize; ++i) { sint32 x, y; @@ -323,40 +457,20 @@ int main(int nNbArg, char **ppArgs) enlargeCanvas (GlobalTexture); enlargeCanvas (GlobalMask); } + putIn (AllMaps[i], &GlobalTexture, x, y); putIn (AllMaps[i], &GlobalMask, x, y, false); + UVMin[i].U = (float)x; UVMin[i].V = (float)y; UVMax[i].U = (float)x+AllMaps[i]->getWidth(); UVMax[i].V = (float)y+AllMaps[i]->getHeight(); - /* // Do not remove this is useful for debugging - { - NLMISC::COFile outTga; - string fmtName = ppArgs[1]; - if (fmtName.rfind('.') == string::npos) - fmtName += ".tga"; - if (outTga.open(fmtName)) - { - GlobalTexture.writeTGA (outTga, 32); - outTga.close(); - } - } - { - NLMISC::COFile outTga; - string fmtName = ppArgs[1]; - if (fmtName.rfind('.') == string::npos) - fmtName += "_msk.tga"; - else - fmtName = fmtName.substr(0,fmtName.rfind('.')) + "_msk.tga"; - if (outTga.open(fmtName)) - { - GlobalMask.writeTGA (outTga, 32); - outTga.close(); - } - }*/ - - +#if 0 + // Do not remove this is useful for debugging + writeFileDependingOnFilename(fmtName.substr(0, fmtName.rfind('.')) + "_txt.png", GlobalTexture); + writeFileDependingOnFilename(fmtName.substr(0, fmtName.rfind('.')) + "_msk.png", GlobalMask); +#endif } // Convert UV from pixel to ratio @@ -368,33 +482,17 @@ int main(int nNbArg, char **ppArgs) UVMax[i].V = UVMax[i].V / (float)GlobalTexture.getHeight(); } + // make sure transparent pixels are black + GlobalTexture.makeTransparentPixelsBlack(); + // Write global texture file - //SetCurrentDirectory (sExeDir); - CPath::setCurrentPath(sExeDir.c_str()); - - NLMISC::COFile outTga; - if (fmtName.rfind('.') == string::npos) - fmtName += ".tga"; - if (outTga.open(fmtName)) + if (writeFileDependingOnFilename(fmtName, GlobalTexture)) { - std::string ext; - if (toLower(fmtName).find(".png") != string::npos) - { - ext = "png"; - GlobalTexture.writePNG (outTga, 32); - } - else - { - ext = "tga"; - GlobalTexture.writeTGA (outTga, 32); - } - - outTga.close(); - outString (toString("Writing %s file : %s\n", ext.c_str(), fmtName.c_str())); + outString(toString("Writing %s", fmtName.c_str())); } else { - outString (string("ERROR: Cannot write tga file : ") + fmtName + "\n"); + outString(toString("ERROR: Unable to write %s", fmtName.c_str())); } // Write UV text file @@ -402,22 +500,23 @@ int main(int nNbArg, char **ppArgs) { fmtName = fmtName.substr(0, fmtName.rfind('.')); fmtName += ".txt"; - FILE *f = fopen (fmtName.c_str(), "wt"); + FILE *f = nlfopen(fmtName, "wb"); if (f != NULL) { for (sint i = 0; i < mapSize; ++i) { // get the string whitout path - string fileName= CFile::getFilename(AllMapNames[i]); - fprintf (f, "%s %.12f %.12f %.12f %.12f\n", fileName.c_str(), UVMin[i].U, UVMin[i].V, - UVMax[i].U, UVMax[i].V); + string fileName = CFile::getFilename(AllMapNames[i]); + fprintf (f, "%s %.12f %.12f %.12f %.12f\n", fileName.c_str(), UVMin[i].U, UVMin[i].V, UVMax[i].U, UVMax[i].V); } + fclose (f); - outString (string("Writing UV file : ") + fmtName + "\n"); + + outString(toString("Writing UV file %s", fmtName.c_str())); } else { - outString (string("ERROR: Cannot write UV file : ") + fmtName + "\n"); + outString(toString("ERROR: Cannot write UV file %s", fmtName.c_str())); } } else // build as a subset @@ -425,20 +524,21 @@ int main(int nNbArg, char **ppArgs) // Load existing uv file CIFile iFile; string filename = CPath::lookup (existingUVfilename, false); - if( (filename == "") || (!iFile.open(filename)) ) + + if( filename.empty() || !iFile.open(filename) ) { - outString (string("ERROR : could not open file ") + existingUVfilename + "\n"); + outString(toString("ERROR: Unable to open %s", existingUVfilename.c_str())); return -1; } // Write subset UV text file fmtName = fmtName.substr(0, fmtName.rfind('.')); fmtName += ".txt"; - FILE *f = fopen (fmtName.c_str(), "wt"); + FILE *f = nlfopen(fmtName, "wb"); + if (f == NULL) { - outString (string("ERROR: Cannot write UV file : ") + fmtName + "\n"); -// fclose (iFile); + outString(toString("ERROR: Unable to write UV file %s", fmtName.c_str())); return -1; } @@ -454,17 +554,27 @@ int main(int nNbArg, char **ppArgs) continue; } + sTGAname = toLower(string(tgaName)); + + // search position of extension + std::string tgaExt = CFile::getExtension(sTGAname); + + // remove extension + sTGAname = CFile::getFilenameWithoutExtension(sTGAname); + sint i; - sTGAname = toLower(string(tgaName)); string findTGAName; for (i = 0; i < mapSize; ++i) { // get the string whitout path - findTGAName = toLower(CFile::getFilename(AllMapNames[i])); + findTGAName = toLower(CFile::getFilenameWithoutExtension(AllMapNames[i])); if( findTGAName == sTGAname ) break; } + + // append extension + sTGAname += "." + tgaExt; if( i == mapSize ) { @@ -474,13 +584,11 @@ int main(int nNbArg, char **ppArgs) else { // present in subset: use new uv's - fprintf (f, "%s %.12f %.12f %.12f %.12f\n", sTGAname.c_str(), UVMin[i].U, UVMin[i].V, - UVMax[i].U, UVMax[i].V); + fprintf (f, "%s %.12f %.12f %.12f %.12f\n", sTGAname.c_str(), UVMin[i].U, UVMin[i].V, UVMax[i].U, UVMax[i].V); } } -// fclose (iFile); fclose (f); - outString (string("Writing UV file : ") + fmtName + "\n"); + outString(toString("Writing UV file: %s", fmtName.c_str())); } return 0; diff --git a/code/nel/tools/3d/mesh_utils/CMakeLists.txt b/code/nel/tools/3d/mesh_utils/CMakeLists.txt index c8390587c..0d9f6deb3 100644 --- a/code/nel/tools/3d/mesh_utils/CMakeLists.txt +++ b/code/nel/tools/3d/mesh_utils/CMakeLists.txt @@ -13,4 +13,4 @@ NL_ADD_RUNTIME_FLAGS(mesh_utils) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS mesh_utils LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT tools3d) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/tools/3d/object_viewer/CMakeLists.txt b/code/nel/tools/3d/object_viewer/CMakeLists.txt index e8def63ff..962f0b5bb 100644 --- a/code/nel/tools/3d/object_viewer/CMakeLists.txt +++ b/code/nel/tools/3d/object_viewer/CMakeLists.txt @@ -17,11 +17,11 @@ ADD_DEFINITIONS(${MFC_DEFINITIONS} -DOBJECT_VIEWER_LIB_EXPORTS) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(object_viewer_dll ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.h ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS object_viewer_dll LIBRARY DESTINATION ${NL_LIB_PREFIX} RUNTIME DESTINATION ${NL_BIN_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT tools3d) INSTALL(FILES object_viewer.cfg DESTINATION ${NL_ETC_PREFIX} COMPONENT tools3d) IF(WITH_MAXPLUGIN) INSTALL(TARGETS object_viewer_dll RUNTIME DESTINATION maxplugin COMPONENT tools3d) INSTALL(FILES object_viewer.cfg DESTINATION maxplugin COMPONENT tools3d) -ENDIF(WITH_MAXPLUGIN) +ENDIF() diff --git a/code/nel/tools/3d/object_viewer_exe/CMakeLists.txt b/code/nel/tools/3d/object_viewer_exe/CMakeLists.txt index d6adb9694..a57a3788a 100644 --- a/code/nel/tools/3d/object_viewer_exe/CMakeLists.txt +++ b/code/nel/tools/3d/object_viewer_exe/CMakeLists.txt @@ -17,9 +17,9 @@ NL_ADD_RUNTIME_FLAGS(object_viewer) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(object_viewer ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.h ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS object_viewer RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools3d) IF(WITH_MAXPLUGIN) INSTALL(TARGETS object_viewer RUNTIME DESTINATION maxplugin COMPONENT tools3d) -ENDIF(WITH_MAXPLUGIN) +ENDIF() diff --git a/code/nel/tools/3d/plugin_max/nel_3dsmax_shared/CMakeLists.txt b/code/nel/tools/3d/plugin_max/nel_3dsmax_shared/CMakeLists.txt index 3a596badc..a93decee5 100644 --- a/code/nel/tools/3d/plugin_max/nel_3dsmax_shared/CMakeLists.txt +++ b/code/nel/tools/3d/plugin_max/nel_3dsmax_shared/CMakeLists.txt @@ -20,6 +20,6 @@ ADD_DEFINITIONS(-DNEL_3DSMAX_SHARED_EXPORTS) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nel_3dsmax_shared ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS nel_3dsmax_shared RUNTIME DESTINATION maxplugin/plugins LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) diff --git a/code/nel/tools/3d/plugin_max/nel_export/CMakeLists.txt b/code/nel/tools/3d/plugin_max/nel_export/CMakeLists.txt index dd91a3101..4fb8b4455 100644 --- a/code/nel/tools/3d/plugin_max/nel_export/CMakeLists.txt +++ b/code/nel/tools/3d/plugin_max/nel_export/CMakeLists.txt @@ -27,6 +27,6 @@ SET_TARGET_PROPERTIES(nel_export PROPERTIES SUFFIX ".dlu") IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nel_export ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.h ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS nel_export RUNTIME DESTINATION maxplugin/plugins LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) diff --git a/code/nel/tools/3d/plugin_max/nel_mesh_lib/CMakeLists.txt b/code/nel/tools/3d/plugin_max/nel_mesh_lib/CMakeLists.txt index a6161338d..3c96760a8 100644 --- a/code/nel/tools/3d/plugin_max/nel_mesh_lib/CMakeLists.txt +++ b/code/nel/tools/3d/plugin_max/nel_mesh_lib/CMakeLists.txt @@ -10,6 +10,6 @@ NL_ADD_LIB_SUFFIX(nel_mesh_lib) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nel_mesh_lib ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS nel_mesh_lib RUNTIME DESTINATION maxplugin/plugins LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) diff --git a/code/nel/tools/3d/plugin_max/nel_patch_edit/CMakeLists.txt b/code/nel/tools/3d/plugin_max/nel_patch_edit/CMakeLists.txt index 82cc06611..20a3635e4 100644 --- a/code/nel/tools/3d/plugin_max/nel_patch_edit/CMakeLists.txt +++ b/code/nel/tools/3d/plugin_max/nel_patch_edit/CMakeLists.txt @@ -20,6 +20,6 @@ NL_ADD_LIB_SUFFIX(nel_patch_edit) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nel_patch_edit ${CMAKE_CURRENT_SOURCE_DIR}/stdafx.h ${CMAKE_CURRENT_SOURCE_DIR}/stdafx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS nel_patch_edit RUNTIME DESTINATION maxplugin/plugins LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries) diff --git a/code/nel/tools/3d/s3tc_compressor_lib/CMakeLists.txt b/code/nel/tools/3d/s3tc_compressor_lib/CMakeLists.txt index 4062f6905..48c14fb3b 100644 --- a/code/nel/tools/3d/s3tc_compressor_lib/CMakeLists.txt +++ b/code/nel/tools/3d/s3tc_compressor_lib/CMakeLists.txt @@ -13,4 +13,4 @@ ADD_DEFINITIONS(${SQUISH_DEFINITIONS}) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS s3tc_compressor LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT tools3d) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/tools/3d/shared_widgets/CMakeLists.txt b/code/nel/tools/3d/shared_widgets/CMakeLists.txt index 2ac70dfe6..ff0794d8b 100644 --- a/code/nel/tools/3d/shared_widgets/CMakeLists.txt +++ b/code/nel/tools/3d/shared_widgets/CMakeLists.txt @@ -25,4 +25,4 @@ NL_ADD_RUNTIME_FLAGS(shared_widgets) IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) INSTALL(TARGETS shared_widgets LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT tools3d) -ENDIF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC) +ENDIF() diff --git a/code/nel/tools/3d/tga_2_dds/tga2dds.cpp b/code/nel/tools/3d/tga_2_dds/tga2dds.cpp index 5e40a4cca..5f0ee4181 100644 --- a/code/nel/tools/3d/tga_2_dds/tga2dds.cpp +++ b/code/nel/tools/3d/tga_2_dds/tga2dds.cpp @@ -311,6 +311,9 @@ int main(int argc, char **argv) if (args.haveArg("o")) OptOutputFileName = args.getArg("o").front(); + if (args.haveArg("m")) + OptMipMap = true; + if (args.haveArg("a")) { std::string strAlgo = args.getArg("a").front(); diff --git a/code/nel/tools/3d/tile_edit/CMakeLists.txt b/code/nel/tools/3d/tile_edit/CMakeLists.txt index 394359cd0..bd29fea37 100644 --- a/code/nel/tools/3d/tile_edit/CMakeLists.txt +++ b/code/nel/tools/3d/tile_edit/CMakeLists.txt @@ -15,6 +15,6 @@ ADD_DEFINITIONS(${MFC_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(tile_edit ${CMAKE_CURRENT_SOURCE_DIR}/stdafx.h ${CMAKE_CURRENT_SOURCE_DIR}/stdafx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS tile_edit RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools3d) diff --git a/code/nel/tools/3d/tile_edit_qt/tile_edit_dlg.h b/code/nel/tools/3d/tile_edit_qt/tile_edit_dlg.h index 88c32bd05..993420ffa 100644 --- a/code/nel/tools/3d/tile_edit_qt/tile_edit_dlg.h +++ b/code/nel/tools/3d/tile_edit_qt/tile_edit_dlg.h @@ -19,6 +19,8 @@ #include "ui_tile_edit_qt.h" +#include + class QCheckBox; class QPushButton; class QLineEdit; diff --git a/code/nel/tools/3d/tile_edit_qt/tiles_model.h b/code/nel/tools/3d/tile_edit_qt/tiles_model.h index 57aee8687..de093fe09 100644 --- a/code/nel/tools/3d/tile_edit_qt/tiles_model.h +++ b/code/nel/tools/3d/tile_edit_qt/tiles_model.h @@ -1,6 +1,9 @@ #ifndef TILESMODEL_H #define TILESMODEL_H +#include +#include + class TileModel { diff --git a/code/nel/tools/3d/zone_check_bind/zone_check_bind.cpp b/code/nel/tools/3d/zone_check_bind/zone_check_bind.cpp index 465fcddb1..f7fa710aa 100644 --- a/code/nel/tools/3d/zone_check_bind/zone_check_bind.cpp +++ b/code/nel/tools/3d/zone_check_bind/zone_check_bind.cpp @@ -15,7 +15,7 @@ // along with this program. If not, see . #include "zone_utility.h" -// +// #include "nel/misc/types_nl.h" #include "nel/misc/path.h" #include "nel/misc/file.h" @@ -54,7 +54,7 @@ struct CPatchVertexInfo uint patchIndex, uint patchVertex, const CVector &pos - ) + ) : ZoneIndex(zoneIndex), PatchIndex(patchIndex), PatchVertex(patchVertex), @@ -95,7 +95,7 @@ static CZone *LoadZone(uint16 xPos, uint16 yPos, std::string zoneExt) { std::string zoneName; ::getZoneNameByCoord(xPos, yPos, zoneName); - std::auto_ptr zone(new CZone); + std::auto_ptr zone(new CZone); std::string lookedUpZoneName = CPath::lookup(zoneName + zoneExt, false, false, false); if (lookedUpZoneName.empty()) return NULL; CIFile iF; @@ -128,7 +128,7 @@ static void GetCandidateVertices(const CVector &pos, float weldThreshold ) { - dest.clear(); + dest.clear(); CVector half(weldThreshold, weldThreshold, weldThreshold); qg.select(pos - half, pos + half); for (TPVQuadGrid::CIterator it = qg.begin(); it != qg.end(); ++it) @@ -146,8 +146,8 @@ static void GetCandidateVertices(const CVector &pos, //=========================================================================================================================== /** Search a vertex of a patch that can be welded with the given vertex * return -1 if none - */ -static sint GetWeldableVertex(const CBezierPatch &bp, const CVector &pos, float weldThreshold) + */ +static sint GetWeldableVertex(const CBezierPatch &bp, const CVector &pos, float weldThreshold) { for (uint k = 0; k < 4; ++k) { @@ -166,7 +166,7 @@ static sint GetWeldableVertex(const CBezierPatch &bp, const CVector &pos, float static uint CheckZone(std::string middleZoneFile, float weldThreshold, float middleEdgeWeldThreshold) { uint numErrors = 0; - uint k, l, m, n, p, q; // some loop counters + uint k, l, m, n, p, q; // some loop counters // This avoid reporting errors twice (for readability) std::set errorPairs; @@ -176,7 +176,7 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid std::auto_ptr zones[9]; std::string zoneNames[9]; - CZoneInfo zoneInfos[9]; + CZoneInfo zoneInfos[9]; uint16 xPos, yPos; const sint16 posOffs[][2] = { {0, 0}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, {0, -1}, {1, -1} }; @@ -201,16 +201,16 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid nlinfo("Zones loading failed : %d", e.what()); return 0; } - + /////////////////////////////// // retrieve datas from zones // /////////////////////////////// for (k = 0; k < 9; ++k) { - ::getZoneNameByCoord(xPos + posOffs[k][0], yPos + posOffs[k][1], zoneNames[k]); + ::getZoneNameByCoord(xPos + posOffs[k][0], yPos + posOffs[k][1], zoneNames[k]); if (zones[k].get() != NULL) zones[k]->retrieve(zoneInfos[k]); - } + } // fill the quad grid CAABBox zoneBBox = zones[0]->getZoneBB().getAABBox(); @@ -222,7 +222,7 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid // insert vertices in quadgrid for (k = 0; k < 9; ++k) - { + { for (l = 0; l < zoneInfos[k].Patchs.size(); ++l) { CPatchInfo &patch = zoneInfos[k].Patchs[l]; @@ -236,7 +236,7 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid CVector half(weldThreshold, weldThreshold, weldThreshold); // yes, insert it in the tree qg.insert(pos - half, pos + half, CPatchVertexInfo(k, l, m, pos)); - } + } } } } @@ -246,11 +246,11 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid ///////////////////////////////////////////////// for (l = 0; l < zoneInfos[0].Patchs.size(); ++l) - { + { CPatchInfo &patch = zoneInfos[0].Patchs[l]; // deals with each border for (m = 0; m < 4; ++m) - { + { // if this border is said to be bound, no need to test.. if (patch.BindEdges[m].NPatchs == 0) { @@ -271,10 +271,10 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid ::GetCandidateVertices(patch.Patch.Vertices[vIndex[q]], qg, verts[q], l, 0, weldThreshold); } - + /////////////////////////// // 1 - 1 connectivity ? // - /////////////////////////// + /////////////////////////// // If there is a patch that is present in the 2 lists, then this is a 1-1 error for (n = 0; n < verts[0].size() && !errorFound; ++n) { @@ -288,9 +288,9 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid CPatchIdentPair errPair = std::make_pair(pi1, pi2); // if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ? - { + { nlinfo("**** Patch %d of zone %s has 1 - 1 connectivity error, try binding it with patch %d of zone %s", - l + 1, middleZoneName.c_str(), verts[0][n]->PatchIndex + 1, zoneNames[verts[0][n]->ZoneIndex].c_str()); + l + 1, middleZoneName.c_str(), verts[0][n]->PatchIndex + 1, zoneNames[verts[0][n]->ZoneIndex].c_str()); errorPairs.insert(std::make_pair(pi2, pi1)); ++numErrors; } @@ -303,10 +303,10 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid ////////////////////////// // 1 - 2 connectivity ? // ////////////////////////// - + // get the position at the middle of that border CVector middlePos = patch.Patch.eval( 0.5f * (indexToST[vIndex[0]][0] + indexToST[vIndex[1]][0]), - 0.5f * (indexToST[vIndex[0]][1] + indexToST[vIndex[1]][1]) ); + 0.5f * (indexToST[vIndex[0]][1] + indexToST[vIndex[1]][1]) ); // for each vertex of this border for (q = 0; q < 2 && !errorFound; ++q) @@ -330,24 +330,24 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid CPatchIdentPair errPair = std::make_pair(pi1, pi2); // if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ? - { + { nlinfo("**** Patch %d of zone %s has 1 - 2 connectivity error, try binding it with patch %d of zone %s", - l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str()); + l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str()); errorPairs.insert(std::make_pair(pi2, pi1)); - ++numErrors; + ++numErrors; } errorFound = true; break; - } + } } } - if (errorFound) continue; - + if (errorFound) continue; + ////////////////////////// // 1 - 4 connectivity ? // ////////////////////////// - + // compute points along the border. CVector borderPos[5]; float lambda = 0.f; @@ -356,12 +356,12 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid borderPos[n] = patch.Patch.eval((1.f - lambda) * indexToST[vIndex[0]][0] + lambda * indexToST[vIndex[1]][0], (1.f - lambda) * indexToST[vIndex[0]][1] + lambda * indexToST[vIndex[1]][1]); lambda += 0.25f; - } - + } + // Try to find a patch that shares 2 consecutives vertices for (k = 0; k < 4 && !errorFound; ++k) { - ::GetCandidateVertices(borderPos[k], qg, verts[0], l, 0, middleEdgeWeldThreshold); + ::GetCandidateVertices(borderPos[k], qg, verts[0], l, 0, middleEdgeWeldThreshold); for (p = 0; p < verts[0].size() && !errorFound; ++p) { const CPatchVertexInfo &pv = *(verts[0][p]); @@ -382,16 +382,16 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid CPatchIdentPair errPair = std::make_pair(pi1, pi2); // if (std::find(errorPairs.begin(), errorPairs.end(), errPair) == errorPairs.end()) // error already displayed ? - { + { nlinfo("**** Patch %d of zone %s has 1 - 4 connectivity error, try binding it with patch %d of zone %s", - l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str()); + l + 1, middleZoneName.c_str(), pv.PatchIndex + 1, zoneNames[pv.ZoneIndex].c_str()); ++numErrors; errorPairs.insert(std::make_pair(pi2, pi1)); } errorFound = true; } } - } + } } } } @@ -406,26 +406,26 @@ static uint CheckZone(std::string middleZoneFile, float weldThreshold, float mid //========================================================================================================================= int main(int argc, char* argv[]) -{ +{ NLMISC::createDebug(); InfoLog->addNegativeFilter("adding the path"); if (argc < 4) { std::string appName = CFile::getFilename(std::string(argv[0])); - nlinfo("usage : %s \n", appName.empty() ? "zone_check_bind" : appName.c_str()); + nlinfo("usage : %s \n", appName.empty() ? "zone_check_bind" : appName.c_str()); return -1; } float weldThreshold, middleEdgeWeldThreshold; - if (::sscanf(argv[2], "%f", &weldThreshold) != 1) + if (!fromString(argv[2], weldThreshold)) { nlinfo("invalid weldThreshold"); return -1; } - if (::sscanf(argv[3], "%f", &middleEdgeWeldThreshold) != 1) + if (!fromString(argv[3], middleEdgeWeldThreshold)) { nlinfo("invalid middleEdgeWeldThreshold"); return -1; @@ -442,10 +442,10 @@ int main(int argc, char* argv[]) // Filter addSearchPath CPath::addSearchPath(zonePaths); - + // Contains all the zone in the directory std::vector zoneNames; - + CPath::getPathContent(zonePaths, true, false, true, zoneNames); uint numErrors = 0; @@ -461,4 +461,4 @@ int main(int argc, char* argv[]) nlinfo("%d errors were found", numErrors); } - + diff --git a/code/nel/tools/3d/zviewer/CMakeLists.txt b/code/nel/tools/3d/zviewer/CMakeLists.txt index 35472f39c..c4222c992 100644 --- a/code/nel/tools/3d/zviewer/CMakeLists.txt +++ b/code/nel/tools/3d/zviewer/CMakeLists.txt @@ -2,9 +2,9 @@ FILE(GLOB SRC *.cpp *.h) IF(WIN32) ADD_EXECUTABLE(zviewer WIN32 ${SRC} zviewer.rc) -ELSE(WIN32) +ELSE() ADD_EXECUTABLE(zviewer ${SRC}) -ENDIF(WIN32) +ENDIF() ADD_DEFINITIONS(-DNL_ZVIEWER_CFG="\\"${NL_ETC_PREFIX}/\\"") diff --git a/code/nel/tools/georges/georges2csv/georges2csv.cpp b/code/nel/tools/georges/georges2csv/georges2csv.cpp index 339479bfe..99dd920ef 100644 --- a/code/nel/tools/georges/georges2csv/georges2csv.cpp +++ b/code/nel/tools/georges/georges2csv/georges2csv.cpp @@ -550,7 +550,7 @@ void executeScriptBuf(const string &text) void executeScriptFile(const string &filename) { ucstring temp; - CI18N::readTextFile(filename, temp, false, false, false); + CI18N::readTextFile(filename, temp, false, false); if (temp.empty()) { diff --git a/code/nel/tools/logic/CMakeLists.txt b/code/nel/tools/logic/CMakeLists.txt index 496f7f31b..0f65ab8f6 100644 --- a/code/nel/tools/logic/CMakeLists.txt +++ b/code/nel/tools/logic/CMakeLists.txt @@ -1,3 +1,3 @@ IF(MFC_FOUND) SUBDIRS(logic_editor_dll logic_editor_exe) -ENDIF(MFC_FOUND) +ENDIF() diff --git a/code/nel/tools/logic/logic_editor_dll/CMakeLists.txt b/code/nel/tools/logic/logic_editor_dll/CMakeLists.txt index e538799a0..8bf325694 100644 --- a/code/nel/tools/logic/logic_editor_dll/CMakeLists.txt +++ b/code/nel/tools/logic/logic_editor_dll/CMakeLists.txt @@ -13,6 +13,6 @@ NL_ADD_LIB_SUFFIX(logic_editor_dll) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(logic_editor_dll ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS logic_editor_dll LIBRARY DESTINATION ${NL_LIB_PREFIX} RUNTIME DESTINATION ${NL_BIN_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT toolsmisc) diff --git a/code/nel/tools/logic/logic_editor_exe/CMakeLists.txt b/code/nel/tools/logic/logic_editor_exe/CMakeLists.txt index 7a210a71a..455cb2d8f 100644 --- a/code/nel/tools/logic/logic_editor_exe/CMakeLists.txt +++ b/code/nel/tools/logic/logic_editor_exe/CMakeLists.txt @@ -8,6 +8,6 @@ NL_ADD_RUNTIME_FLAGS(logic_editor) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(logic_editor ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS logic_editor RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT toolsmisc) diff --git a/code/nel/tools/misc/words_dic/CMakeLists.txt b/code/nel/tools/misc/words_dic/CMakeLists.txt index c3f3975f2..a2d0293ad 100644 --- a/code/nel/tools/misc/words_dic/CMakeLists.txt +++ b/code/nel/tools/misc/words_dic/CMakeLists.txt @@ -10,6 +10,6 @@ ADD_DEFINITIONS(${MFC_DEFINITIONS}) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(words_dic ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.h ${CMAKE_CURRENT_SOURCE_DIR}/StdAfx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS words_dic RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT toolsmisc) diff --git a/code/nelns/CMakeLists.txt b/code/nelns/CMakeLists.txt index fe72e20b3..d45111118 100644 --- a/code/nelns/CMakeLists.txt +++ b/code/nelns/CMakeLists.txt @@ -6,8 +6,8 @@ IF(WITH_NELNS_SERVER) ADD_SUBDIRECTORY(naming_service) ADD_SUBDIRECTORY(login_service) ADD_SUBDIRECTORY(welcome_service) -ENDIF(WITH_NELNS_SERVER) +ENDIF() IF(WITH_NELNS_LOGIN_SYSTEM) ADD_SUBDIRECTORY(login_system) -ENDIF(WITH_NELNS_LOGIN_SYSTEM) +ENDIF() diff --git a/code/nelns/CMakePackaging.txt b/code/nelns/CMakePackaging.txt index 8a509272e..34a766ebc 100644 --- a/code/nelns/CMakePackaging.txt +++ b/code/nelns/CMakePackaging.txt @@ -34,10 +34,10 @@ SET(CPACK_SOURCE_PACKAGE_FILE_NAME "nelns-${NL_VERSION}") IF(WIN32) SET(CPACK_GENERATOR "NSIS") SET(CPACK_SOURCE_GENERATOR "ZIP") -ELSE(WIN32) +ELSE() SET(CPACK_GENERATOR "TGZ") SET(CPACK_SOURCE_GENERATOR "TGZ") -ENDIF(WIN32) +ENDIF() set(CPACK_SOURCE_IGNORE_FILES "~$" "\\\\.cvsignore$" @@ -49,7 +49,7 @@ set(CPACK_SOURCE_IGNORE_FILES IF(WIN32) IF(NOT CMAKE_BUILD_TYPE STREQUAL "Release") SET(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - ENDIF(NOT CMAKE_BUILD_TYPE STREQUAL "Release") + ENDIF() IF(WITH_QT) INCLUDE(${QT_USE_FILE}) @@ -58,15 +58,15 @@ IF(WIN32) "${QT_LIBRARY_DIR}/QtXml4.dll" "${QT_LIBRARY_DIR}/QtCore4.dll" DESTINATION bin) - ENDIF(WITH_QT) + ENDIF() # Only the tools require MFC. IF(BUILD_RYZOM_LAUNCHER) SET(CMAKE_INSTALL_MFC_LIBRARIES TRUE) - ENDIF(BUILD_RYZOM_LAUNCHER) + ENDIF() INCLUDE(InstallRequiredSystemLibraries) -ENDIF(WIN32) +ENDIF() INCLUDE(CPack) diff --git a/code/nelns/login_system/CMakeLists.txt b/code/nelns/login_system/CMakeLists.txt index 1e80f4d05..ac79f857c 100644 --- a/code/nelns/login_system/CMakeLists.txt +++ b/code/nelns/login_system/CMakeLists.txt @@ -1,9 +1,9 @@ IF(WIN32) IF(BUILD_RYZOM_LAUNCHER) ADD_SUBDIRECTORY(nel_launcher_windows_ext2) - ENDIF(BUILD_RYZOM_LAUNCHER) -ENDIF(WIN32) + ENDIF() +ENDIF() IF(WITH_QT) ADD_SUBDIRECTORY(nel_launcher_qt) -ENDIF(WITH_QT) +ENDIF() diff --git a/code/nelns/login_system/nel_launcher_qt/CMakeLists.txt b/code/nelns/login_system/nel_launcher_qt/CMakeLists.txt index 92dac70f1..02cd438b7 100644 --- a/code/nelns/login_system/nel_launcher_qt/CMakeLists.txt +++ b/code/nelns/login_system/nel_launcher_qt/CMakeLists.txt @@ -34,6 +34,6 @@ ADD_DEFINITIONS(${QT_DEFINITIONS}) INSTALL(TARGETS nel_launcher_qt RUNTIME DESTINATION bin COMPONENT launcher) IF(WIN32) INSTALL(FILES nel_launcher.cfg DESTINATION bin COMPONENT launcher) -ELSE(WIN32) +ELSE() INSTALL(FILES nel_launcher.cfg DESTINATION ${NL_ETC_PREFIX}/nelns COMPONENT launcher) -ENDIF(WIN32) +ENDIF() diff --git a/code/nelns/login_system/nel_launcher_windows_ext2/CMakeLists.txt b/code/nelns/login_system/nel_launcher_windows_ext2/CMakeLists.txt index 2851d5f1d..b283624d1 100644 --- a/code/nelns/login_system/nel_launcher_windows_ext2/CMakeLists.txt +++ b/code/nelns/login_system/nel_launcher_windows_ext2/CMakeLists.txt @@ -3,7 +3,7 @@ FILE(GLOB SRC *.cpp *.h) ADD_EXECUTABLE(nel_launcher_ext2 WIN32 ${SRC} nel_launcher.rc) IF(CURL_FOUND) ADD_DEFINITIONS(-DUSE_CURL) -ENDIF(CURL_FOUND) +ENDIF() ADD_DEFINITIONS(-DNL_LAUNCHER_CFG="\\"${NL_ETC_PREFIX}/\\"") TARGET_LINK_LIBRARIES(nel_launcher_ext2 @@ -17,7 +17,7 @@ NL_ADD_RUNTIME_FLAGS(nel_launcher_ext2) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(nel_launcher_ext2 ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.h ${CMAKE_CURRENT_SOURCE_DIR}/std_afx.cpp) -ENDIF(WITH_PCH) +ENDIF() INSTALL(TARGETS nel_launcher_ext2 RUNTIME DESTINATION bin COMPONENT launcher) INSTALL(FILES nel_launcher.cfg DESTINATION ${NL_ETC_PREFIX} COMPONENT launcher) diff --git a/code/ryzom/CMakeLists.txt b/code/ryzom/CMakeLists.txt index 46c8bcb68..5ce811872 100644 --- a/code/ryzom/CMakeLists.txt +++ b/code/ryzom/CMakeLists.txt @@ -13,6 +13,8 @@ ADD_SUBDIRECTORY(client) IF(WITH_RYZOM_SERVER OR WITH_RYZOM_TOOLS) # Need servershare for build packed collision tool # Need aishare for build wmap tool - FIND_PACKAGE(MySQL REQUIRED) - ADD_SUBDIRECTORY(server) + FIND_PACKAGE(MySQL) + IF(MYSQL_FOUND) + ADD_SUBDIRECTORY(server) + ENDIF() ENDIF() diff --git a/code/ryzom/client/CMakeLists.txt b/code/ryzom/client/CMakeLists.txt index 919f9fe22..a17e216d6 100644 --- a/code/ryzom/client/CMakeLists.txt +++ b/code/ryzom/client/CMakeLists.txt @@ -10,4 +10,14 @@ IF(WITH_RYZOM_CLIENT) ENDIF() INSTALL(FILES client_default.cfg DESTINATION ${RYZOM_ETC_PREFIX}) + + IF(WITH_RYZOM_PATCH) + IF(APPLE) + INSTALL(FILES macosx/upgd_nl.sh DESTINATION ${RYZOM_GAMES_PREFIX}) + ELSEIF(WIN32) + INSTALL(FILES windows/upgd_nl.bat DESTINATION ${RYZOM_GAMES_PREFIX}) + ELSE() + INSTALL(FILES unix/upgd_nl.sh DESTINATION ${RYZOM_GAMES_PREFIX}) + ENDIF() + ENDIF() ENDIF() diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/compass.xml b/code/ryzom/client/data/gamedev/interfaces_v3/compass.xml index 35a259ea4..a88f49f44 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/compass.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/compass.xml @@ -8,7 +8,7 @@ - @@ -25,23 +25,38 @@ + + + + + + + + + + + - + + + params="volume=@UI:SAVE:MP3_VOLUME" /> + onclick_l="enter_modal" + params_l="group=ui:interface:playlist" + tooltip="uiMP3Playlist" /> - @@ -44,13 +44,13 @@