Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
541bed1db2 | ||
|
|
5af8800eed | ||
|
|
52494ba402 | ||
|
|
dc39e10858 | ||
|
|
73b25c45ff | ||
|
|
a73906252e | ||
|
|
e8a63c9de5 | ||
|
|
b0245f9d7b | ||
|
|
e1683d047a | ||
|
|
0664f9a81b | ||
|
|
4e4cb25540 | ||
|
|
e61171cc85 | ||
|
|
27bf5108ab | ||
|
|
29afd80673 | ||
|
|
2286e7de1b | ||
|
|
c553e29ff8 | ||
|
|
ebeaff2724 | ||
|
|
87ff089178 | ||
|
|
0fba3f5cf9 | ||
|
|
8d3112d5a9 | ||
|
|
f041e69789 | ||
|
|
acfbe510fb | ||
|
|
a855e14ebf | ||
|
|
2704d47cd8 | ||
|
|
8fa9bdde5e | ||
|
|
5b47661a90 | ||
|
|
de1af6ce7d | ||
|
|
4782efddcb | ||
|
|
201e6d24a9 | ||
|
|
8777c9874b | ||
|
|
eeed22f478 | ||
|
|
e3696df5e1 | ||
|
|
dd4d74a1d9 | ||
|
|
27ed5a0635 | ||
|
|
ae27d8025b | ||
|
|
b8c95c5a20 | ||
|
|
97e49d9b3f | ||
|
|
5c06dedf7c | ||
|
|
5825fe77ab | ||
|
|
c18bd6a8bc | ||
|
|
bb3a8bf351 | ||
|
|
502909c789 | ||
|
|
391082160c | ||
|
|
b07bc7ed19 | ||
|
|
3d48145e47 | ||
|
|
ef54299deb | ||
|
|
78c1b32797 | ||
|
|
e9d45a507a | ||
|
|
0c7624a5ef | ||
|
|
04f24ba63d | ||
|
|
b36e3fb758 | ||
|
|
a596c58b02 | ||
|
|
a14bfaff56 | ||
|
|
f702b79892 | ||
|
|
05d390fb3f | ||
|
|
be0eaf9d0d | ||
|
|
3d94b78b8c | ||
|
|
73b1b77ca8 | ||
|
|
fb5316cb7f | ||
|
|
6e835bd5f5 | ||
|
|
0fc80d2a52 | ||
|
|
eaa3fab4ec | ||
|
|
4c0d749a39 | ||
|
|
baedc3eed1 | ||
|
|
8c606ef5c4 | ||
|
|
3eff72340d | ||
|
|
70283f7610 | ||
|
|
934c70272d | ||
|
|
a7ec6772ff | ||
|
|
c8679dabbe | ||
|
|
1ba802dd9b | ||
|
|
5ab627b735 | ||
|
|
1b445d4c3a | ||
|
|
9bcf7d2f0f | ||
|
|
2044ff9723 | ||
|
|
e628241b02 | ||
|
|
d996cf384d | ||
|
|
fb877e1304 | ||
|
|
d8489c0b04 | ||
|
|
30c941fcf8 | ||
|
|
30b5abd672 | ||
|
|
c0a31fca18 | ||
|
|
9c4e3950b6 | ||
|
|
e7a977dd5c | ||
|
|
f823d0ddb4 | ||
|
|
165f32f6a6 | ||
|
|
5f25311389 | ||
|
|
336df76912 | ||
|
|
0f9e72d553 | ||
|
|
73aa6080aa | ||
|
|
e5a8609d7a | ||
|
|
85d2ebc32a | ||
|
|
5722b4dc23 | ||
|
|
fb170cbd5d | ||
|
|
7275082284 | ||
|
|
3587b487dd | ||
|
|
a527a3c34d | ||
|
|
d6269f9608 | ||
|
|
eb4b82c015 | ||
|
|
3a6c0440f2 | ||
|
|
3c6782d94d | ||
|
|
063d972b13 | ||
|
|
e85b9e7425 | ||
|
|
0c41aecfc9 |
@@ -1,11 +1,13 @@
|
||||
/build/
|
||||
/distr/
|
||||
|
||||
/bin/app/Debug/
|
||||
/bin/app/Release/
|
||||
/bin/app/data/log/
|
||||
/bin/app/data/projects/
|
||||
/bin/app/data/ApplicationSettings.xml
|
||||
/bin/app/data/window_settings.ini
|
||||
/bin/app/Release/
|
||||
/bin/app/data/*.sqlite
|
||||
|
||||
/bin/lib/
|
||||
|
||||
@@ -14,5 +16,9 @@
|
||||
/bin/test/data/log/
|
||||
/bin/test/data/temp.xml
|
||||
/bin/test/data/TestSettings.xml
|
||||
/bin/test/data/*.sqlite
|
||||
|
||||
/setup/Linux/lib/*
|
||||
|
||||
.DS_Store
|
||||
.idea
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
cmake_minimum_required(VERSION 2.8.9)
|
||||
|
||||
# to get CMP0043 warnings, upgrade to version 3 and change the line above to VERSION 3.0 and remove the line below
|
||||
if(POLICY CMP0043)
|
||||
cmake_policy(SET CMP0043 OLD)
|
||||
endif()
|
||||
|
||||
include(cmake/add_files.cmake)
|
||||
include(cmake/create_source_groups.cmake)
|
||||
|
||||
include(cmake/version.cmake)
|
||||
include(cmake/version_setup.cmake)
|
||||
include(cmake/licenses.cmake)
|
||||
|
||||
# Variables --------------------------------------------------------------------
|
||||
|
||||
@@ -25,32 +32,50 @@ endif ()
|
||||
|
||||
if (UNIX)
|
||||
add_definitions(-std=c++11 -Wno-unknown-warning-option -fcolor-diagnostics -DQT_COMPILING_QSTRING_COMPAT_CPP )
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
||||
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
||||
endif ()
|
||||
|
||||
# Project ----------------------------------------------------------------------
|
||||
|
||||
project(${PROJECT_NAME})
|
||||
if (UNIX AND NOT APPLE)
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
||||
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" )
|
||||
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" )
|
||||
#set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32" )
|
||||
endif ()
|
||||
|
||||
# Clang ------------------------------------------------------------------------
|
||||
|
||||
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build/share/llvm/cmake")
|
||||
|
||||
if (UNIX)
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build_release/share/llvm/cmake")
|
||||
else()
|
||||
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build_debug/share/llvm/cmake")
|
||||
endif()
|
||||
else()
|
||||
find_package(LLVM REQUIRED PATHS "$ENV{CLANG_DIR}/build/share/llvm/cmake")
|
||||
endif()
|
||||
|
||||
find_package(CLANG REQUIRED PATHS "${CMAKE_SOURCE_DIR}/cmake")
|
||||
|
||||
add_definitions(${CLANG_DEFINITIONS})
|
||||
|
||||
# Boost ------------------------------------------------------------------------
|
||||
|
||||
set(BOOST_ROOT $ENV{BOOST_155_DIR})
|
||||
set(BOOST_ROOT $ENV{BOOST_159_DIR})
|
||||
set(Boost_USE_MULTITHREAD ON)
|
||||
set(Boost_USE_STATIC_LIBS OFF)
|
||||
set(Boost_USE_STATIC_RUNTIME OFF)
|
||||
set(BOOST_LIBRARYDIR $ENV{BOOST_155_DIR})
|
||||
find_package(Boost 1.55 COMPONENTS system filesystem date_time REQUIRED)
|
||||
Set(Boost_NO_SYSTEM_PATHS ON)
|
||||
set(BOOST_LIBRARYDIR $ENV{BOOST_159_DIR})
|
||||
|
||||
find_package(Boost 1.59 COMPONENTS system filesystem date_time REQUIRED)
|
||||
|
||||
# Eigen -------------------------------------------------------------------------
|
||||
|
||||
add_definitions(-DEIGEN_MPL2_ONLY)
|
||||
set(EIGEN_ROOT $ENV{EIGEN_DIR})
|
||||
|
||||
# Lib --------------------------------------------------------------------------
|
||||
@@ -62,12 +87,15 @@ add_subdirectory(src/lib)
|
||||
add_subdirectory(src/external)
|
||||
|
||||
set_source_files_properties(${CLANG_FILES} PROPERTIES COMPILE_FLAGS "-fno-rtti")
|
||||
set_source_files_properties(${EXTERNAL_FILES} PROPERTIES COMPILE_FLAGS "-w")
|
||||
set_source_files_properties(${EXTERNAL_C_FILES} PROPERTIES COMPILE_FLAGS "-std=gnu89 -w")
|
||||
|
||||
add_library(${LIB_PROJECT_NAME} ${LIB_FILES} ${CLANG_FILES} ${EXTERNAL_FILES})
|
||||
add_library(${LIB_PROJECT_NAME} ${LIB_FILES} ${CLANG_FILES} ${EXTERNAL_FILES} ${EXTERNAL_C_FILES})
|
||||
|
||||
create_source_groups(${LIB_FILES})
|
||||
create_source_groups(${CLANG_FILES})
|
||||
create_source_groups(${EXTERNAL_FILES})
|
||||
create_source_groups(${EXTERNAL_C_FILES})
|
||||
|
||||
set_target_properties(
|
||||
${LIB_PROJECT_NAME}
|
||||
@@ -80,13 +108,17 @@ set_property(
|
||||
TARGET ${LIB_PROJECT_NAME}
|
||||
PROPERTY INCLUDE_DIRECTORIES
|
||||
"${CMAKE_SOURCE_DIR}/src/lib"
|
||||
"${CMAKE_SOURCE_DIR}/src/external"
|
||||
${LLVM_INCLUDE_DIRS}
|
||||
${CLANG_INCLUDE_DIRS}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${EIGEN_ROOT}
|
||||
)
|
||||
|
||||
target_include_directories(${LIB_PROJECT_NAME} SYSTEM
|
||||
PUBLIC ${LLVM_INCLUDE_DIRS}
|
||||
${CLANG_INCLUDE_DIRS}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${EIGEN_ROOT}
|
||||
"${CMAKE_SOURCE_DIR}/src/external"
|
||||
)
|
||||
|
||||
|
||||
link_directories(${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS})
|
||||
|
||||
target_link_libraries(${LIB_PROJECT_NAME} ${CLANG_LIBRARIES} ${LLVM_AVAILABLE_LIBS} ${Boost_LIBRARIES})
|
||||
@@ -109,19 +141,59 @@ set(CMAKE_AUTOMOC ON)
|
||||
# Find the QtWidgets library
|
||||
set(CMAKE_PREFIX_PATH "$ENV{QT_DIR}/")
|
||||
|
||||
set(Qt5Widgets_DIR "$ENV{QT_DIR}/cmake/Qt5Widgets/")
|
||||
set(Qt5PrintSupport_DIR "$ENV{QT_DIR}/cmake/Qt5PrintSupport/")
|
||||
|
||||
find_package(Qt5Widgets)
|
||||
find_package(Qt5PrintSupport)
|
||||
find_package(Qt5Network)
|
||||
|
||||
if(Qt5Widgets_FOUND)
|
||||
MESSAGE(STATUS "Found Qt ${Qt5Widgets_VERSION_STRING}")
|
||||
# FIX: Qt was built with -reduce-relocations
|
||||
if (Qt5_POSITION_INDEPENDENT_CODE)
|
||||
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# target for running versionnumber script
|
||||
# workaround for running customcommand (ninja dependency cycle)
|
||||
add_custom_target(
|
||||
versionnumber ALL
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
file(WRITE ${CMAKE_SOURCE_DIR}/build/Coati.rc
|
||||
"// Icon with lowest ID value placed first to ensure application icon\n"
|
||||
"// remains consistent on all systems.\n"
|
||||
"IDI_ICON1 ICON \"${CMAKE_SOURCE_DIR}/build/coati.ico\"\n"
|
||||
)
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/Coati.rc)
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/Coati.rc ${CMAKE_SOURCE_DIR}/build/src/app/version.h)
|
||||
|
||||
# hide the console when running a release build.
|
||||
set_target_properties(${APP_PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
|
||||
set_target_properties(${APP_PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
|
||||
set_target_properties(${APP_PROJECT_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
|
||||
set_target_properties(${APP_PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
|
||||
set_target_properties(${APP_PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/ENTRY:\"mainCRTStartup\" /SUBSYSTEM:WINDOWS")
|
||||
set_target_properties(${APP_PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS")
|
||||
|
||||
else ()
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES})
|
||||
add_executable(${APP_PROJECT_NAME} ${APP_FILES} ${CMAKE_SOURCE_DIR}/build/src/app/version.h)
|
||||
endif ()
|
||||
|
||||
# command for versioning script
|
||||
add_custom_command(
|
||||
TARGET versionnumber
|
||||
PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/version.cmake
|
||||
BYPRODUCTS ${PROJECT_SOURCE_DIR}/build/src/app/version.h
|
||||
DEPENDS ${APP_PROJECT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMENT "check/update version number"
|
||||
)
|
||||
add_dependencies(${APP_PROJECT_NAME} versionnumber)
|
||||
|
||||
create_source_groups(${APP_FILES})
|
||||
|
||||
target_link_libraries(${APP_PROJECT_NAME} ${LIB_PROJECT_NAME})
|
||||
@@ -132,12 +204,16 @@ set_property(
|
||||
"${CMAKE_SOURCE_DIR}/src/lib"
|
||||
"${CMAKE_SOURCE_DIR}/src/app"
|
||||
"${CMAKE_SOURCE_DIR}/build/src/app"
|
||||
"${CMAKE_SOURCE_DIR}/src/external"
|
||||
${Boost_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_include_directories(${APP_PROJECT_NAME} SYSTEM
|
||||
PUBLIC "${CMAKE_SOURCE_DIR}/src/external"
|
||||
PUBLIC ${Boost_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Use the Widgets module from Qt 5.
|
||||
qt5_use_modules(${APP_PROJECT_NAME} Widgets)
|
||||
qt5_use_modules(${APP_PROJECT_NAME} Network)
|
||||
|
||||
# configure platform specific include file
|
||||
configure_file(
|
||||
@@ -145,6 +221,12 @@ configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/build/src/app/includes.h"
|
||||
)
|
||||
|
||||
#configure the versioning file
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/src/app/version.h.in
|
||||
${CMAKE_SOURCE_DIR}/build/src/app/version.h
|
||||
)
|
||||
|
||||
# add platform specific libraries
|
||||
if (APPLE)
|
||||
find_library(CORE_FOUNDATION CoreFoundation)
|
||||
@@ -160,7 +242,7 @@ if (APPLE)
|
||||
set(MACOSX_BUNDLE_NAME ${PROJECT_NAME})
|
||||
set(MACOSX_BINARY_NAME ${APP_PROJECT_NAME})
|
||||
|
||||
set(MACOSX_DYNAMIC_LIBRARIES ${Boost_LIBRARIES} "${LLVM_LIBRARY_DIRS}/libLTO.dylib")
|
||||
set(MACOSX_DYNAMIC_LIBRARIES ${Boost_LIBRARIES} "${LLVM_LIBRARY_DIRS}/libLTO.3.8.dylib")
|
||||
string(REPLACE ";" " " MACOSX_DYNAMIC_LIBRARIES "${MACOSX_DYNAMIC_LIBRARIES}")
|
||||
|
||||
get_property(QT_CORE_PATH TARGET ${Qt5Core_LIBRARIES} PROPERTY LOCATION)
|
||||
@@ -175,7 +257,10 @@ if (APPLE)
|
||||
get_property(QT_PRINT_PATH TARGET ${Qt5PrintSupport_LIBRARIES} PROPERTY LOCATION)
|
||||
get_filename_component(QT_PRINT_PATH ${QT_PRINT_PATH} REALPATH)
|
||||
|
||||
list(APPEND MACOSX_QT_FRAMEWORKS ${QT_CORE_PATH} ${QT_GUI_PATH} ${QT_WIDGETS_PATH} ${QT_PRINT_PATH})
|
||||
get_property(QT_NETWORK_PATH TARGET ${Qt5Network_LIBRARIES} PROPERTY LOCATION)
|
||||
get_filename_component(QT_NETWORK_PATH ${QT_NETWORK_PATH} REALPATH)
|
||||
|
||||
list(APPEND MACOSX_QT_FRAMEWORKS ${QT_CORE_PATH} ${QT_GUI_PATH} ${QT_WIDGETS_PATH} ${QT_PRINT_PATH} ${QT_NETWORK_PATH})
|
||||
string(REPLACE ";" " " MACOSX_QT_FRAMEWORKS "${MACOSX_QT_FRAMEWORKS}")
|
||||
|
||||
set(MACOSX_QT_DIR "$ENV{QT_DIR}")
|
||||
@@ -263,74 +348,10 @@ endif ()
|
||||
# Visual Leak Detector ---------------------------------------------------------
|
||||
|
||||
if (WIN32)
|
||||
|
||||
include_directories($ENV{VLD_DIR}/include)
|
||||
|
||||
endif ()
|
||||
|
||||
# Linux package
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
|
||||
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/data
|
||||
DESTINATION share/coati
|
||||
)
|
||||
INSTALL(FILES ${CMAKE_SOURCE_DIR}/setup/Linux/coati.desktop
|
||||
DESTINATION share/applications
|
||||
)
|
||||
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/gui/icon/logo_1024_1024.png
|
||||
DESTINATION share/icons
|
||||
RENAME coati.png)
|
||||
INSTALL(FILES
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libedit.so.0.0.52
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libboost_filesystem.so.1.55.0
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libboost_system.so.1.55.0
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libboost_date_time.so.1.55.0
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libstdc++.so.6
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libpng16.so.16
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libQt5Core.so.5
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libQt5DBus.so.5
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libQt5Gui.so.5
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libQt5Widgets.so.5
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libicui18n.so.54
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libicuuc.so.54
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libpcre16.so.0
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libsystemd.so.0
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libicudata.so.54
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/liblz4.so.1
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libgcrypt.so.20
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libgpg-error.so.0
|
||||
|
||||
DESTINATION share/coati/lib
|
||||
)
|
||||
INSTALL(FILES
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libqxcb.so
|
||||
DESTINATION share/coati/platforms
|
||||
)
|
||||
INSTALL(PROGRAMS
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/Coati.sh
|
||||
DESTINATION share/coati
|
||||
)
|
||||
|
||||
# add the automatically determined parts of the RPATH
|
||||
# which point to directories outside the build tree to the install RPATH
|
||||
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
INSTALL(TARGETS ${APP_PROJECT_NAME}
|
||||
DESTINATION share/coati
|
||||
)
|
||||
|
||||
SET(CPACK_GENERATOR "DEB;TGZ")
|
||||
|
||||
# DEBIAN PACKAGE
|
||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Andreas Stallinger <astallinger.mmt-m2013@fh-salzburg.ac.at>")
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
|
||||
SET(CPACK_PACKAGE_NAME "Coati")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR 0)
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR 1)
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH 2)
|
||||
SET(CPACK_PACKAGE_EXECUTABLES "Coati")
|
||||
|
||||
INCLUDE(CPack)
|
||||
|
||||
include(cmake/LinuxPackage.cmake)
|
||||
endif ()
|
||||
|
||||
@@ -4,25 +4,51 @@
|
||||
|
||||
##### External Software
|
||||
|
||||
* QT 5.2.1
|
||||
* QT 5.5
|
||||
* CxxTest 4.3
|
||||
* Valgrind 3.9.0(linux, macOS)
|
||||
* Valgrind 3.9.0 (linux)
|
||||
* Clang & LLVM (installation guide http://clang.llvm.org/docs/LibASTMatchersTutorial.html)
|
||||
* Boost 1.55 ()
|
||||
* Eigen 3.2.3
|
||||
* Boost 1.59
|
||||
* Eigen 3.2.6
|
||||
|
||||
##### Environment Variables
|
||||
|
||||
* QT_DIR - ...\Qt\Qt5.2.1\5.2.1\<IDE>\
|
||||
* CXX_TEST_DIR - .../cxxtest-4.3/
|
||||
* CLANG_DIR - .../clang-llvm/
|
||||
* BOOST_155_DIR - .../boost_1_55_0
|
||||
* BOOST_159_DIR - .../boost_1_59_0
|
||||
* EIGEN_DIR - .../eigen
|
||||
|
||||
For Win32:
|
||||
* VLD_DIR - .../Visual Leak Detector
|
||||
* path - apped path to git.exe
|
||||
|
||||
##### Settings
|
||||
|
||||
Run setup script:
|
||||
$ ./script/setup.sh
|
||||
|
||||
##### Updating Clang on UNIX
|
||||
|
||||
$ cd .../clang_llvm
|
||||
|
||||
$ cd llvm
|
||||
$ git pull origin master
|
||||
|
||||
$ cd tools/clang
|
||||
$ git pull origin master
|
||||
|
||||
$ cd tools/extra/
|
||||
$ git pull origin master
|
||||
|
||||
$ cd ../../../../../build_debug
|
||||
$ cmake -G Ninja ../llvm
|
||||
$ ninja -j4 check-all
|
||||
|
||||
$ cd ../release_build
|
||||
$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../llvm
|
||||
$ ninja -j4 check-all
|
||||
|
||||
##### Remarks
|
||||
|
||||
* Boost lib dir: rename library directory for your system (e.g.: 'lib32-msvc-12.0') to 'lib'
|
||||
@@ -7,30 +7,31 @@
|
||||
<!-- COLOR: int int int int - rgba e.g. 125 125 125 255 -->
|
||||
|
||||
<config>
|
||||
<StartupProject><!-- STRING: path to project settings xml file --></StartupProject>
|
||||
|
||||
<FilterUndefinedNodesFromGraph><!-- BOOL: filter out undefined nodes in graph --></FilterUndefinedNodesFromGraph>
|
||||
<startup_project><!-- STRING: path to project settings xml file --></startup_project>
|
||||
|
||||
<source>
|
||||
<CompilerFlags>
|
||||
<CompilerFlag><!-- STRING: compiler flag, including the dash e.g. -v --></CompilerFlag>
|
||||
</CompilerFlags>
|
||||
<compiler_flags>
|
||||
<compiler_flag><!-- STRING: compiler flag, including the dash e.g. -v --></compiler_flag>
|
||||
</compiler_flags>
|
||||
|
||||
<HeaderSearchPaths>
|
||||
<HeaderSearchPath><!-- STRING: header search path for each path a HeaderSearchPath element --></HeaderSearchPath>
|
||||
</HeaderSearchPaths>
|
||||
<header_search_paths>
|
||||
<header_search_path><!-- STRING: header search path for each path a header_search_path element --></header_search_path>
|
||||
</header_search_paths>
|
||||
|
||||
<!-- MAC ONLY -->
|
||||
<FrameworkSearchPaths>
|
||||
<FrameworkSearchPath><!-- STRING: framework search path --></FrameworkSearchPath>
|
||||
</FrameworkSearchPaths>
|
||||
<framework_search_paths>
|
||||
<framework_search_path><!-- STRING: framework search path --></framework_search_path>
|
||||
</framework_search_paths>
|
||||
</source>
|
||||
|
||||
<code>
|
||||
<TabWidth><!-- INTEGER: number of spaces to represent a tab in code files --></TabWidth>
|
||||
<application>
|
||||
<font_name><!-- STRING: font name --></font_name>
|
||||
<font_size><!-- INTEGER: font size in pt --></font_size>
|
||||
<color_scheme><!-- STRING: color scheme path --></color_scheme>
|
||||
</application>
|
||||
|
||||
<FontName><!-- STRING: name of the font used for source view --></FontName> <!-- DEPRECATED -->
|
||||
<FontSize><!-- INTEGER: size of the font in the source view --></FontSize> <!-- DEPRECATED -->
|
||||
<code>
|
||||
<tab_width><!-- INTEGER: number of spaces to represent a tab in code files --></tab_width>
|
||||
|
||||
<snippet>
|
||||
<snap_range><!-- INTEGER: max amount of lines that the current snippet will be extended to snap to scope start/end --></snap_range>
|
||||
@@ -38,80 +39,11 @@
|
||||
</snippet>
|
||||
</code>
|
||||
|
||||
<colors>
|
||||
<!-- QueryNodeType -->
|
||||
<command>
|
||||
<normal>#8FBC92</normal>
|
||||
<hover>#5EA071</hover>
|
||||
</command>
|
||||
<operator>
|
||||
<normal>#FCA47E</normal>
|
||||
<hover>#F97A4E</hover>
|
||||
</operator>
|
||||
<!-- NodeType -->
|
||||
<class>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</class>
|
||||
<struct>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</struct>
|
||||
<enum>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</enum>
|
||||
<function>
|
||||
<normal>#F4D07D</normal>
|
||||
<hover>#F4BC3D</hover>
|
||||
</function>
|
||||
<method>
|
||||
<normal>#F4D07D</normal>
|
||||
<hover>#F4BC3D</hover>
|
||||
</method>
|
||||
<field>
|
||||
<normal>#7BB5D4</normal>
|
||||
<hover>#42A1D4</hover>
|
||||
</field>
|
||||
<global>
|
||||
<normal>#7BB5D4</normal>
|
||||
<hover>#42A1D4</hover>
|
||||
</global>
|
||||
<undefined>
|
||||
<normal>#00000000</normal>
|
||||
<hover>#00000000</hover>
|
||||
</undefined>
|
||||
<undefined_variable>
|
||||
<normal>#7BB5D4</normal>
|
||||
<hover>#42A1D4</hover>
|
||||
</undefined_variable>
|
||||
<undefined_function>
|
||||
<normal>#F4D07D</normal>
|
||||
<hover>#F4BC3D</hover>
|
||||
</undefined_function>
|
||||
<undefined_type>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</undefined_type>
|
||||
<namespace>
|
||||
<normal>#00000000</normal>
|
||||
<hover>#00000000</hover>
|
||||
</namespace>
|
||||
<typedef>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</typedef>
|
||||
<enum_constant>
|
||||
<normal>#7BB5D4</normal>
|
||||
<hover>#42A1D4</hover>
|
||||
</enum_constant>
|
||||
<template_parameter_type>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</template_parameter_type>
|
||||
<file>
|
||||
<normal>#88BAB3</normal>
|
||||
<hover>#6AA39B</hover>
|
||||
</file>
|
||||
</colors>
|
||||
<user>
|
||||
<has_seen_settings><!-- BOOL: if the user was already asked to enter app settings --></has_seen_settings>
|
||||
|
||||
<recent_projects>
|
||||
<recent_project><!-- STRING: recent project path --></recent_project>
|
||||
</recent_projects>
|
||||
</user>
|
||||
</config>
|
||||
|
||||
@@ -8,27 +8,27 @@
|
||||
|
||||
<config>
|
||||
<source>
|
||||
<SourcePaths>
|
||||
<SourcePath><!-- STRING: path to source file or directory, also used as header search path --></SourcePath>
|
||||
</SourcePaths>
|
||||
<source_paths>
|
||||
<source_path><!-- STRING: path to source file or directory, also used as header search path --></source_path>
|
||||
</source_paths>
|
||||
|
||||
<CompilerFlags>
|
||||
<CompilerFlag><!-- STRING: compiler flag, including the dash e.g. -v --></CompilerFlag>
|
||||
</CompilerFlags>
|
||||
<compiler_flags>
|
||||
<compiler_flag><!-- STRING: compiler flag, including the dash e.g. -v --></compiler_flag>
|
||||
</compiler_flags>
|
||||
|
||||
<HeaderSearchPaths>
|
||||
<HeaderSearchPath><!-- STRING: header search path for each path a HeaderSearchPath element --></HeaderSearchPath>
|
||||
</HeaderSearchPaths>
|
||||
<header_search_paths>
|
||||
<header_search_path><!-- STRING: header search path for each path a header_search_path element --></header_search_path>
|
||||
</header_search_paths>
|
||||
|
||||
<!-- MAC ONLY -->
|
||||
<FrameworkSearchPaths>
|
||||
<FrameworkSearchPath><!-- STRING: framework search path --></FrameworkSearchPath>
|
||||
</FrameworkSearchPaths>
|
||||
<framework_search_paths>
|
||||
<framework_search_path><!-- STRING: framework search path --></framework_search_path>
|
||||
</framework_search_paths>
|
||||
|
||||
<Extensions>
|
||||
<HeaderExtensions><!-- STRING: extension for header/include e.g. .h --></HeaderExtensions>
|
||||
<SourceExtensions><!-- STRING: extension for source e.g. .cpp --></SourceExtensions>
|
||||
</Extensions>
|
||||
<extensions>
|
||||
<header_extensions><!-- STRING: extension for header/include e.g. .h --></header_extensions>
|
||||
<source_extensions><!-- STRING: extension for source e.g. .cpp --></source_extensions>
|
||||
</extensions>
|
||||
|
||||
</source>
|
||||
</config>
|
||||
|
||||
@@ -0,0 +1,258 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<config>
|
||||
<search>
|
||||
<background>white</background>
|
||||
|
||||
<button>
|
||||
<normal>#E0E0E0</normal>
|
||||
<hover>#B2B2B2</hover>
|
||||
<press>#626262</press>
|
||||
<disabled>#F4F4F4</disabled>
|
||||
<icon>white</icon>
|
||||
</button>
|
||||
|
||||
<field>
|
||||
<text>black</text>
|
||||
<background>#E0E0E0</background>
|
||||
<highlight>#B2B2B2</highlight>
|
||||
</field>
|
||||
|
||||
<popup>
|
||||
<text>black</text>
|
||||
<by_text>#A0A0A0</by_text>
|
||||
<background>white</background>
|
||||
<highlight>#B2B2B2</highlight>
|
||||
</popup>
|
||||
|
||||
<query>
|
||||
<none>
|
||||
<normal>white</normal>
|
||||
<hover>#F5F5F5</hover>
|
||||
</none>
|
||||
<command>
|
||||
<normal>#8FBC92</normal>
|
||||
<hover>#5EA071</hover>
|
||||
</command>
|
||||
<operator>
|
||||
<normal>#FCA47E</normal>
|
||||
<hover>#F97A4E</hover>
|
||||
</operator>
|
||||
</query>
|
||||
</search>
|
||||
|
||||
<code>
|
||||
<background>white</background>
|
||||
|
||||
<file>
|
||||
<background>#E0E0E0</background>
|
||||
|
||||
<title>
|
||||
<text>black</text>
|
||||
<normal>#E0E0E0</normal>
|
||||
<hover>#B2B2B2</hover>
|
||||
<press>#626262</press>
|
||||
<icon>black</icon>
|
||||
</title>
|
||||
|
||||
<ref_count>
|
||||
<text>black</text>
|
||||
<background>white</background>
|
||||
</ref_count>
|
||||
</file>
|
||||
|
||||
<snippet>
|
||||
<background>transparent</background>
|
||||
|
||||
<title>
|
||||
<text>#A0A0A0</text>
|
||||
<background>transparent</background>
|
||||
<hover>#F5F5F5</hover>
|
||||
</title>
|
||||
|
||||
<line_number>
|
||||
<text>black</text>
|
||||
<background>transparent</background>
|
||||
</line_number>
|
||||
|
||||
<syntax>
|
||||
<normal>black</normal>
|
||||
<directive>#1B8856</directive>
|
||||
<keyword>#1B8856</keyword>
|
||||
<type>#C1492D</type>
|
||||
<comment>#A0A0A4</comment>
|
||||
<number>#C1315E</number>
|
||||
<quotation>#865F9E</quotation>
|
||||
<function>#CC9533</function>
|
||||
</syntax>
|
||||
|
||||
<highlight>
|
||||
<location>
|
||||
<normal>#90EBEBEB</normal>
|
||||
<hover>#90B6D1DD</hover>
|
||||
</location>
|
||||
<scope>
|
||||
<normal>#60E4EEF2</normal>
|
||||
<hover>#90E4EEF2</hover>
|
||||
</scope>
|
||||
<error>
|
||||
<normal>#80FF0000</normal>
|
||||
<hover>#FFFF0000</hover>
|
||||
</error>
|
||||
</highlight>
|
||||
</snippet>
|
||||
</code>
|
||||
|
||||
<graph>
|
||||
<text>black</text>
|
||||
<background>white</background>
|
||||
<border>#3C3C3C</border>
|
||||
<icon>black</icon>
|
||||
<hatching>white</hatching>
|
||||
|
||||
<node>
|
||||
<type>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</type>
|
||||
<class>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</class>
|
||||
<struct>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</struct>
|
||||
<enum>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</enum>
|
||||
<typedef>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</typedef>
|
||||
<template_parameter_type>
|
||||
<normal>#ededed</normal>
|
||||
<hover>#ededed</hover>
|
||||
</template_parameter_type>
|
||||
|
||||
<function>
|
||||
<normal>#F4D07D</normal>
|
||||
<hover>#F4BC3D</hover>
|
||||
</function>
|
||||
<method>
|
||||
<normal>#F4D07D</normal>
|
||||
<hover>#F4BC3D</hover>
|
||||
</method>
|
||||
|
||||
<field>
|
||||
<normal>#7BB5D4</normal>
|
||||
<hover>#42A1D4</hover>
|
||||
</field>
|
||||
<global_variable>
|
||||
<normal>#7BB5D4</normal>
|
||||
<hover>#42A1D4</hover>
|
||||
</global_variable>
|
||||
<enum_constant>
|
||||
<normal>#7BB5D4</normal>
|
||||
<hover>#42A1D4</hover>
|
||||
</enum_constant>
|
||||
|
||||
<undefined>
|
||||
<normal>#CC8D91</normal>
|
||||
<hover>#CC8D91</hover>
|
||||
</undefined>
|
||||
<namespace>
|
||||
<normal>#CC8D91</normal>
|
||||
<hover>#CC8D91</hover>
|
||||
</namespace>
|
||||
|
||||
<file>
|
||||
<normal>#DDD</normal>
|
||||
<hover>#CCC</hover>
|
||||
</file>
|
||||
|
||||
<macro>
|
||||
<normal>#DDD</normal>
|
||||
<hover>#CCC</hover>
|
||||
</macro>
|
||||
</node>
|
||||
<edge>
|
||||
<type_of>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</type_of>
|
||||
<return_type>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</return_type>
|
||||
<parameter_type>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</parameter_type>
|
||||
<type_use>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</type_use>
|
||||
<inheritance>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</inheritance>
|
||||
<typedef>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</typedef>
|
||||
|
||||
<override>
|
||||
<normal>#CC5E89</normal>
|
||||
<hover>#CC5E89</hover>
|
||||
</override>
|
||||
|
||||
<call>
|
||||
<normal>#F4BC3D</normal>
|
||||
<hover>#F4BC3D</hover>
|
||||
</call>
|
||||
|
||||
<use>
|
||||
<normal>#3190BA</normal>
|
||||
<hover>#3190BA</hover>
|
||||
</use>
|
||||
|
||||
<template_parameter>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_parameter>
|
||||
<template_argument>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_argument>
|
||||
<template_default_argument>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_default_argument>
|
||||
<template_specialization>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_specialization>
|
||||
|
||||
<include>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</include>
|
||||
|
||||
<aggregation>
|
||||
<normal>#EEE</normal>
|
||||
<hover>#DDD</hover>
|
||||
</aggregation>
|
||||
<macro_use>
|
||||
<normal>#878787</normal>
|
||||
<hover>#878787</hover>
|
||||
</macro_use>
|
||||
</edge>
|
||||
</graph>
|
||||
|
||||
<tool_tip>
|
||||
<text>black</text>
|
||||
<background>#E0E0E0</background>
|
||||
</tool_tip>
|
||||
</config>
|
||||
@@ -0,0 +1,258 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<config>
|
||||
<search>
|
||||
<background>#272728</background>
|
||||
|
||||
<button>
|
||||
<normal>#777777</normal>
|
||||
<hover>#555555</hover>
|
||||
<press>#444444</press>
|
||||
<disabled>#333333</disabled>
|
||||
<icon>white</icon>
|
||||
</button>
|
||||
|
||||
<field>
|
||||
<text>#F7F7F7</text>
|
||||
<background>#777777</background>
|
||||
<highlight>#555555</highlight>
|
||||
</field>
|
||||
|
||||
<popup>
|
||||
<text>#F7F7F7</text>
|
||||
<by_text>#A0A0A0</by_text>
|
||||
<background>#272728</background>
|
||||
<highlight>#555555</highlight>
|
||||
</popup>
|
||||
|
||||
<query>
|
||||
<none>
|
||||
<normal>#2F2F2F</normal>
|
||||
<hover>black</hover>
|
||||
</none>
|
||||
<command>
|
||||
<normal>#406D4D</normal>
|
||||
<hover>#4E855E</hover>
|
||||
</command>
|
||||
<operator>
|
||||
<normal>#7D2724</normal>
|
||||
<hover>#8C2B29</hover>
|
||||
</operator>
|
||||
</query>
|
||||
</search>
|
||||
|
||||
<code>
|
||||
<background>#272728</background>
|
||||
|
||||
<file>
|
||||
<background>#777777</background>
|
||||
|
||||
<title>
|
||||
<text>#F7F7F7</text>
|
||||
<normal>#777777</normal>
|
||||
<hover>#555555</hover>
|
||||
<press>#444444</press>
|
||||
<icon>white</icon>
|
||||
</title>
|
||||
|
||||
<ref_count>
|
||||
<text>#F7F7F7</text>
|
||||
<background>#272728</background>
|
||||
</ref_count>
|
||||
</file>
|
||||
|
||||
<snippet>
|
||||
<background>transparent</background>
|
||||
|
||||
<title>
|
||||
<text>#A0A0A0</text>
|
||||
<background>transparent</background>
|
||||
<hover>#2F2F2F</hover>
|
||||
</title>
|
||||
|
||||
<line_number>
|
||||
<text>#F7F7F7</text>
|
||||
<background>transparent</background>
|
||||
</line_number>
|
||||
|
||||
<syntax>
|
||||
<normal>#F7F7F7</normal>
|
||||
<directive>#1F9C62</directive>
|
||||
<keyword>#1F9C62</keyword>
|
||||
<type>#D95233</type>
|
||||
<comment>#A0A0A4</comment>
|
||||
<number>#CC3463</number>
|
||||
<quotation>#9368AD</quotation>
|
||||
<function>#D69C36</function>
|
||||
</syntax>
|
||||
|
||||
<highlight>
|
||||
<location>
|
||||
<normal>#20EBEBEB</normal>
|
||||
<hover>#40B6D1DD</hover>
|
||||
</location>
|
||||
<scope>
|
||||
<normal>#10E4EEF2</normal>
|
||||
<hover>#18E4EEF2</hover>
|
||||
</scope>
|
||||
<error>
|
||||
<normal>#A0FF0000</normal>
|
||||
<hover>#FFFF0000</hover>
|
||||
</error>
|
||||
</highlight>
|
||||
</snippet>
|
||||
</code>
|
||||
|
||||
<graph>
|
||||
<text>#F7F7F7</text>
|
||||
<border>#C3C3C3</border>
|
||||
<background>#272728</background>
|
||||
<icon>#F7F7F7</icon>
|
||||
<hatching>#272728</hatching>
|
||||
|
||||
<node>
|
||||
<type>
|
||||
<normal>#4D4D4D</normal>
|
||||
<hover>#4D4D4D</hover>
|
||||
</type>
|
||||
<class>
|
||||
<normal>#4D4D4D</normal>
|
||||
<hover>#4D4D4D</hover>
|
||||
</class>
|
||||
<struct>
|
||||
<normal>#4D4D4D</normal>
|
||||
<hover>#4D4D4D</hover>
|
||||
</struct>
|
||||
<enum>
|
||||
<normal>#4D4D4D</normal>
|
||||
<hover>#4D4D4D</hover>
|
||||
</enum>
|
||||
<typedef>
|
||||
<normal>#4D4D4D</normal>
|
||||
<hover>#4D4D4D</hover>
|
||||
</typedef>
|
||||
<template_parameter_type>
|
||||
<normal>#4D4D4D</normal>
|
||||
<hover>#4D4D4D</hover>
|
||||
</template_parameter_type>
|
||||
|
||||
<function>
|
||||
<normal>#7A681F</normal>
|
||||
<hover>#9C8528</hover>
|
||||
</function>
|
||||
<method>
|
||||
<normal>#7A681F</normal>
|
||||
<hover>#9C8528</hover>
|
||||
</method>
|
||||
|
||||
<field>
|
||||
<normal>#21516B</normal>
|
||||
<hover>#2A6484</hover>
|
||||
</field>
|
||||
<global_variable>
|
||||
<normal>#21516B</normal>
|
||||
<hover>#2A6484</hover>
|
||||
</global_variable>
|
||||
<enum_constant>
|
||||
<normal>#21516B</normal>
|
||||
<hover>#2A6484</hover>
|
||||
</enum_constant>
|
||||
|
||||
<undefined>
|
||||
<normal>#78282D</normal>
|
||||
<hover>#78282D</hover>
|
||||
</undefined>
|
||||
<namespace>
|
||||
<normal>#78282D</normal>
|
||||
<hover>#78282D</hover>
|
||||
</namespace>
|
||||
|
||||
<file>
|
||||
<normal>#1B564E</normal>
|
||||
<hover>#247368</hover>
|
||||
</file>
|
||||
|
||||
<macro>
|
||||
<normal>#1B564E</normal>
|
||||
<hover>#247368</hover>
|
||||
</macro>
|
||||
</node>
|
||||
<edge>
|
||||
<type_of>
|
||||
<normal>#797979</normal>
|
||||
<hover>#797979</hover>
|
||||
</type_of>
|
||||
<return_type>
|
||||
<normal>#797979</normal>
|
||||
<hover>#797979</hover>
|
||||
</return_type>
|
||||
<parameter_type>
|
||||
<normal>#797979</normal>
|
||||
<hover>#797979</hover>
|
||||
</parameter_type>
|
||||
<type_use>
|
||||
<normal>#797979</normal>
|
||||
<hover>#797979</hover>
|
||||
</type_use>
|
||||
<inheritance>
|
||||
<normal>#797979</normal>
|
||||
<hover>#797979</hover>
|
||||
</inheritance>
|
||||
<typedef>
|
||||
<normal>#797979</normal>
|
||||
<hover>#797979</hover>
|
||||
</typedef>
|
||||
|
||||
<override>
|
||||
<normal>#CC5E89</normal>
|
||||
<hover>#CC5E89</hover>
|
||||
</override>
|
||||
|
||||
<call>
|
||||
<normal>#9C8528</normal>
|
||||
<hover>#9C8528</hover>
|
||||
</call>
|
||||
|
||||
<use>
|
||||
<normal>#2A6484</normal>
|
||||
<hover>#2A6484</hover>
|
||||
</use>
|
||||
|
||||
<template_parameter>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_parameter>
|
||||
<template_argument>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_argument>
|
||||
<template_default_argument>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_default_argument>
|
||||
<template_specialization>
|
||||
<normal>#C1305D</normal>
|
||||
<hover>#C1305D</hover>
|
||||
</template_specialization>
|
||||
|
||||
<include>
|
||||
<normal>#247368</normal>
|
||||
<hover>#247368</hover>
|
||||
</include>
|
||||
|
||||
<aggregation>
|
||||
<normal>#5D5D5D</normal>
|
||||
<hover>#6D6D6D</hover>
|
||||
</aggregation>
|
||||
<macro_use>
|
||||
<normal>#247368</normal>
|
||||
<hover>#247368</hover>
|
||||
</macro_use>
|
||||
</edge>
|
||||
</graph>
|
||||
|
||||
<tool_tip>
|
||||
<text>#F7F7F7</text>
|
||||
<background>#777777</background>
|
||||
</tool_tip>
|
||||
</config>
|
||||
@@ -1,42 +1,58 @@
|
||||
#code_file_list {
|
||||
background-color: white;
|
||||
#code_file_list_base, #code_file_list {
|
||||
background-color: <color:code/background>;
|
||||
}
|
||||
|
||||
* {
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
#code_file {
|
||||
background-color: white;
|
||||
border: 2px solid #E0E0E0;
|
||||
background-color: <color:code/snippet/background>;
|
||||
border: 2px solid <color:code/file/background>;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
#code_file #title_widget {
|
||||
background-color: #E0E0E0;
|
||||
background-color: <color:code/file/background>;
|
||||
border-top-left-radius: 10px;
|
||||
border-top-right-radius: 10px;
|
||||
margin-bottom: 5px;
|
||||
min-height: 28px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
#code_file #title_label {
|
||||
background: none;
|
||||
background-color: <color:code/file/title/normal>;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
font-size: 14px;
|
||||
color: <color:code/file/title/text>;
|
||||
padding: 2px 4px;
|
||||
margin: 2px 8px;
|
||||
margin: 1px 8px 3px;
|
||||
}
|
||||
|
||||
#code_file #title_label:hover {
|
||||
background-color: #D0D0D0;
|
||||
background-color: <color:code/file/title/hover>;
|
||||
}
|
||||
|
||||
#code_file #title_label:disabled {
|
||||
color: black;
|
||||
#code_file #title_label:pressed {
|
||||
background-color: <color:code/file/title/press>;
|
||||
}
|
||||
|
||||
#code_file #code_snippet{
|
||||
border-top: 2px solid #E0E0E0;
|
||||
padding-top: 2px;
|
||||
#code_file #references_label {
|
||||
background-color: <color:code/file/ref_count/background>;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
color: <color:code/file/ref_count/text>;
|
||||
font-size: <setting:font_size-2>pt;
|
||||
padding: 0px 3px;
|
||||
margin: 4px 0px 4px;
|
||||
}
|
||||
|
||||
#code_file #code_snippet {
|
||||
background-color: <color:code/snippet/background>;
|
||||
border-top: 2px solid <color:code/file/background>;
|
||||
}
|
||||
|
||||
#code_file #code_snippet * {
|
||||
font-family: "<setting:font_name>";
|
||||
}
|
||||
|
||||
#code_file #code_snippet[isFirst=true] {
|
||||
@@ -44,32 +60,45 @@
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
#code_file #code_snippet[isLast=true] {
|
||||
border-bottom-left-radius: 12px;
|
||||
border-bottom-right-radius: 12px;
|
||||
}
|
||||
|
||||
#code_file #code_snippet #scope_name, #code_file #code_snippet #dots {
|
||||
background: none;
|
||||
color: gray;
|
||||
background-color: <color:code/snippet/title/background>;
|
||||
color: <color:code/snippet/title/text>;
|
||||
border: none;
|
||||
font-family: "Source Code Pro";
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#code_file #code_snippet #scope_name:hover {
|
||||
background-color: <color:code/snippet/title/hover>;
|
||||
}
|
||||
|
||||
#code_file #code_snippet #dots {
|
||||
background-color: <color:code/snippet/line_number/background>;
|
||||
padding-right: 13px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#code_file #code_snippet #scope_name {
|
||||
padding-left: 4px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#code_file #code_snippet #line_number_area {
|
||||
background-color: <color:code/snippet/line_number/background>;
|
||||
border: none;
|
||||
color: <color:code/snippet/line_number/text>;
|
||||
}
|
||||
|
||||
#code_file #code_snippet[isLast=true] #line_number_area {
|
||||
border-bottom-left-radius: 12px;
|
||||
}
|
||||
|
||||
#code_area {
|
||||
background-color: transparent;
|
||||
font-family: "Source Code Pro";
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#code_area #line_number_area {
|
||||
font-family: "Source Code Pro";
|
||||
font-size: 14px;
|
||||
color: <color:code/snippet/syntax/normal>;
|
||||
}
|
||||
|
||||
#code_file #maximize_button, #code_file #snippet_button, #code_file #minimize_button {
|
||||
@@ -103,7 +132,7 @@
|
||||
}
|
||||
|
||||
QToolTip {
|
||||
background-color: rgb(204, 204, 204);
|
||||
border: 1px solid rgb(0, 0, 0);
|
||||
color: rgb(0, 0, 0);
|
||||
background-color: <color:tool_tip/background>;
|
||||
color: <color:tool_tip/text>;
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
QGraphicsView, QGraphicsScene {
|
||||
background-color: <color:graph/background>;
|
||||
}
|
||||
|
||||
QToolTip {
|
||||
background-color: <color:tool_tip/background>;
|
||||
color: <color:tool_tip/text>;
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
After Width: | Height: | Size: 748 B |
|
After Width: | Height: | Size: 584 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 436 B |
|
After Width: | Height: | Size: 337 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 656 B |
|
After Width: | Height: | Size: 546 B |
|
After Width: | Height: | Size: 684 B |
|
After Width: | Height: | Size: 805 B |
@@ -1,20 +1,20 @@
|
||||
#refresh_bar {
|
||||
background: white;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
QPushButton {
|
||||
background: #E0E0E0;
|
||||
background: <color:search/button/normal>;
|
||||
border: none;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
QPushButton:hover, QPushButton:checked {
|
||||
background: #B2B2B2;
|
||||
background: <color:search/button/hover>;
|
||||
}
|
||||
|
||||
QPushButton:pressed {
|
||||
background: #626262;
|
||||
background: <color:search/button/press>;
|
||||
}
|
||||
|
||||
#refresh_button {
|
||||
@@ -29,7 +29,7 @@ QPushButton:pressed {
|
||||
}
|
||||
|
||||
QToolTip {
|
||||
background-color: rgb(204, 204, 204);
|
||||
border: 1px solid rgb(0, 0, 0);
|
||||
color: rgb(0, 0, 0);
|
||||
background-color: <color:tool_tip/background>;
|
||||
color: <color:tool_tip/text>;
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
QPushButton {
|
||||
border: none;
|
||||
font-family: "Source Code Pro";
|
||||
font-size: 16px;
|
||||
height: 20px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
@@ -1,9 +1,18 @@
|
||||
* {
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
#search_box, #search_box * {
|
||||
font-family: "<setting:font_name>";
|
||||
font-size: <setting:font_size+2>pt;
|
||||
}
|
||||
|
||||
#search_bar {
|
||||
background: white;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
QWidget#search_box_container {
|
||||
background: #E0E0E0;
|
||||
background: <color:search/field/background>;
|
||||
border: none;
|
||||
border-bottom-left-radius: 12px;
|
||||
border-top-left-radius: 12px;
|
||||
@@ -11,62 +20,46 @@ QWidget#search_box_container {
|
||||
}
|
||||
|
||||
QLineEdit#search_box {
|
||||
background: #E0E0E0;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
font-family: "Source Code Pro";
|
||||
font-size: 16px;
|
||||
height: 24px;
|
||||
selection-background-color: #B2B2B2;
|
||||
color: <color:search/field/text>;
|
||||
selection-background-color: <color:search/field/highlight>;
|
||||
}
|
||||
|
||||
QWidget#search_box_highlight {
|
||||
background: #B2B2B2;
|
||||
background-color: <color:search/field/highlight>;
|
||||
border: none;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
QAbstractItemView#search_box_popup {
|
||||
background-color: white;
|
||||
background-color: <color:search/popup/background>;
|
||||
border: none;
|
||||
font-family: "Source Code Pro";
|
||||
font-size: 14pt;
|
||||
color: <color:search/popup/text>;
|
||||
font-family: "<setting:font_name>";
|
||||
margin: 8px 0 0;
|
||||
min-height: 26px;
|
||||
selection-background-color: #B2B2B2;
|
||||
selection-background-color: <color:search/popup/highlight>;
|
||||
}
|
||||
|
||||
QPushButton#search_button {
|
||||
background: #E0E0E0;
|
||||
background: <color:search/button/normal>;
|
||||
border: none;
|
||||
border-bottom-right-radius: 12px;
|
||||
border-top-right-radius: 12px;
|
||||
background-position: 15px 5px;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
#search_button:hover {
|
||||
background: #B2B2B2;
|
||||
background: <color:search/button/hover>;
|
||||
}
|
||||
|
||||
#search_button:pressed {
|
||||
background: #626262;
|
||||
background: <color:search/button/press>;
|
||||
}
|
||||
|
||||
/*QPushButton#case_sensitive_button {
|
||||
border: none;
|
||||
border-image: url(data/gui/search_view/images/button_case_sensitive_inactive.png);
|
||||
height: 26px;
|
||||
width: 26px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
QPushButton#case_sensitive_button:checked {
|
||||
border-image: url(data/gui/search_view/images/button_case_sensitive_active.png);
|
||||
}*/
|
||||
|
||||
QToolTip {
|
||||
background-color: rgb(204, 204, 204);
|
||||
border: 1px solid rgb(0, 0, 0);
|
||||
color: rgb(0, 0, 0);
|
||||
background-color: <color:tool_tip/background>;
|
||||
color: <color:tool_tip/text>;
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
QtDirectoryListBox {
|
||||
background-color: rgba(255, 255, 255, 200);
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
QListWidget {
|
||||
background: transparent;
|
||||
border: none;
|
||||
margin: 2px 0 2px 0;
|
||||
}
|
||||
|
||||
QListWidget::item {
|
||||
border-bottom: 1px solid lightgray;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
QListWidget::item:selected {
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
|
||||
QtListItemWidget #field {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
font-size: 12px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
QtListItemWidget #button {
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 8px;
|
||||
font-size: 12px;
|
||||
margin-top: 2px;
|
||||
margin-right: 2px;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
QtListItemWidget #button:hover {
|
||||
color: white;
|
||||
background: #2D3F85;
|
||||
}
|
||||
|
||||
#bar {
|
||||
border-top: 1px solid lightgray;
|
||||
}
|
||||
|
||||
#roundedButton {
|
||||
background: dimgray;
|
||||
border-radius: 8px;
|
||||
color: white;
|
||||
font-size: 15px;
|
||||
height: 16px;
|
||||
margin-right: 3px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
#roundedButton:hover {
|
||||
background: gray;
|
||||
}
|
||||
|
||||
#dropInfo {
|
||||
color: lightgray;
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
#titleLabel {
|
||||
color: black;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
QLineEdit {
|
||||
background-color: rgba(255, 255, 255, 200);
|
||||
border-radius: 10px;
|
||||
border: 1px solid lightgrey;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
QLineEdit:disabled {
|
||||
border: 1px solid lightgrey;
|
||||
}
|
||||
|
||||
#formArea {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
border-top: 1px solid lightgrey;
|
||||
border-bottom: 1px solid lightgrey;
|
||||
}
|
||||
|
||||
#form {
|
||||
background-color: rgba(255, 255, 255, 150);
|
||||
}
|
||||
|
||||
#form QLabel {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#moreButton {
|
||||
background-color: rgba(255, 255, 255, 200);
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 10px;
|
||||
color: gray;
|
||||
font-size: 15px;
|
||||
height: 20px;
|
||||
margin-left: 10px;
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
#moreButton:hover {
|
||||
color: white;
|
||||
background: #2D3F85;
|
||||
}
|
||||
|
||||
#windowButton {
|
||||
background: white;
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 10px;
|
||||
color: black;
|
||||
font-size: 17pt;
|
||||
height: 30px;
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
#windowButton:hover {
|
||||
color: white;
|
||||
background: #2D3F85;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 432 KiB |
|
Before Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,35 @@
|
||||
#projectButton {
|
||||
background: white;
|
||||
border: 1px solid lightgray;
|
||||
border-radius: 10px;
|
||||
font-size: 17pt;
|
||||
}
|
||||
|
||||
#projectButton:hover {
|
||||
background: #2D3F85;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#recentButton {
|
||||
background: none;
|
||||
border: none;
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
#recentButton:hover {
|
||||
background-color: rgba(45, 63, 133, 70);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#recentLabel {
|
||||
color: black;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
QToolTip {
|
||||
background-color: <color:tool_tip/background>;
|
||||
color: <color:tool_tip/text>;
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
#undo_redo_bar {
|
||||
background: white;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
QPushButton {
|
||||
background: #E0E0E0;
|
||||
background: <color:search/button/normal>;
|
||||
border: none;
|
||||
background-position: 15px 5px;
|
||||
height: 30px;
|
||||
@@ -22,19 +22,19 @@ QPushButton {
|
||||
}
|
||||
|
||||
QPushButton:disabled {
|
||||
background: #F4F4F4;
|
||||
background: <color:search/button/disabled>;
|
||||
}
|
||||
|
||||
QPushButton:hover {
|
||||
background: #B2B2B2;
|
||||
background: <color:search/button/hover>;
|
||||
}
|
||||
|
||||
QPushButton:pressed {
|
||||
background: #626262;
|
||||
background: <color:search/button/press>;
|
||||
}
|
||||
|
||||
QToolTip {
|
||||
background-color: rgb(204, 204, 204);
|
||||
border: 1px solid rgb(0, 0, 0);
|
||||
color: rgb(0, 0, 0);
|
||||
background-color: <color:tool_tip/background>;
|
||||
color: <color:tool_tip/text>;
|
||||
font-size: <setting:font_size>pt;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
class Point
|
||||
{
|
||||
public:
|
||||
Point(int x, int y)
|
||||
: x(x)
|
||||
, y(y)
|
||||
{
|
||||
}
|
||||
|
||||
int x;
|
||||
int y;
|
||||
};
|
||||
|
||||
|
||||
class Shape
|
||||
{
|
||||
public:
|
||||
virtual void draw() = 0;
|
||||
};
|
||||
|
||||
|
||||
class Line
|
||||
: public Shape
|
||||
{
|
||||
public:
|
||||
Line(Point start, Point end)
|
||||
: start(start)
|
||||
, end(end)
|
||||
{
|
||||
}
|
||||
|
||||
void draw()
|
||||
{
|
||||
// line drawing
|
||||
}
|
||||
|
||||
private:
|
||||
Point start;
|
||||
Point end;
|
||||
};
|
||||
|
||||
|
||||
class Circle
|
||||
: public Shape
|
||||
{
|
||||
public:
|
||||
Circle(Point center, int radius)
|
||||
: center(center)
|
||||
, radius(radius)
|
||||
{}
|
||||
|
||||
void draw()
|
||||
{
|
||||
// circle drawing
|
||||
}
|
||||
|
||||
private:
|
||||
Point center;
|
||||
int radius;
|
||||
};
|
||||
|
||||
|
||||
class Image
|
||||
{
|
||||
public:
|
||||
Image(int width, int height)
|
||||
: width(width)
|
||||
, height(height)
|
||||
, idx(0)
|
||||
{
|
||||
shapes = new Shape*[10];
|
||||
}
|
||||
|
||||
~Image()
|
||||
{
|
||||
for (int i = 0; i < idx; i++)
|
||||
{
|
||||
delete shapes[i];
|
||||
}
|
||||
|
||||
delete [] shapes;
|
||||
}
|
||||
|
||||
void addShape(Shape* shape)
|
||||
{
|
||||
if (idx < 10)
|
||||
{
|
||||
shapes[idx] = shape;
|
||||
idx++;
|
||||
}
|
||||
}
|
||||
|
||||
void draw()
|
||||
{
|
||||
for (int i = 0; i < idx; i++)
|
||||
{
|
||||
shapes[i]->draw();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
Shape** shapes;
|
||||
int idx;
|
||||
|
||||
int width;
|
||||
int height;
|
||||
};
|
||||
|
||||
|
||||
void drawStickMan()
|
||||
{
|
||||
Image stickman(100, 200);
|
||||
|
||||
// head
|
||||
stickman.addShape(new Circle(Point(50, 50), 25));
|
||||
|
||||
// torso
|
||||
stickman.addShape(new Line(Point(50, 75), Point(50, 180)));
|
||||
|
||||
// arms
|
||||
stickman.addShape(new Line(Point(50, 100), Point(10, 125)));
|
||||
stickman.addShape(new Line(Point(50, 100), Point(90, 125)));
|
||||
|
||||
// legs
|
||||
stickman.addShape(new Line(Point(50, 100), Point(10, 125)));
|
||||
stickman.addShape(new Line(Point(50, 100), Point(90, 125)));
|
||||
|
||||
stickman.draw();
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
// nothing here
|
||||
// except for text
|
||||
@@ -0,0 +1,197 @@
|
||||
|
||||
int number = 3;
|
||||
|
||||
int calculate();
|
||||
|
||||
int calculate(long i)
|
||||
{
|
||||
int a = 1 + 2;
|
||||
return a;
|
||||
}
|
||||
|
||||
int calculate()
|
||||
{
|
||||
int a = 1 + 2;
|
||||
return a;
|
||||
}
|
||||
|
||||
int calculate(int i)
|
||||
{
|
||||
int a = 1 + 2;
|
||||
return a;
|
||||
}
|
||||
|
||||
|
||||
#define CALL_CALCULATE() \
|
||||
do \
|
||||
{ \
|
||||
calculate(); \
|
||||
} \
|
||||
while(0) \
|
||||
|
||||
int main()
|
||||
{
|
||||
CALL_CALCULATE();
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
|
||||
void countUp()
|
||||
{
|
||||
count += 1;
|
||||
}
|
||||
|
||||
void countDown()
|
||||
{
|
||||
count -= 1;
|
||||
}
|
||||
|
||||
|
||||
void countUpTen()
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
countUp();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class Person
|
||||
{
|
||||
public:
|
||||
Person(char* name)
|
||||
: name(name)
|
||||
, age(0)
|
||||
, weight(3)
|
||||
, height(50)
|
||||
{
|
||||
}
|
||||
|
||||
char* askForName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
void gainWeight(int gain)
|
||||
{
|
||||
weight += gain;
|
||||
}
|
||||
|
||||
void grow(int gain)
|
||||
{
|
||||
height += gain;
|
||||
}
|
||||
|
||||
void celebrateBirthday()
|
||||
{
|
||||
age += 1;
|
||||
|
||||
grow(5);
|
||||
gainWeight(3);
|
||||
}
|
||||
|
||||
private:
|
||||
char* name;
|
||||
int age;
|
||||
|
||||
int height;
|
||||
int weight;
|
||||
};
|
||||
|
||||
|
||||
class Vehicle
|
||||
{
|
||||
protected:
|
||||
int wheelCount;
|
||||
int seatCount;
|
||||
};
|
||||
|
||||
class Car
|
||||
: public Vehicle
|
||||
{
|
||||
public:
|
||||
Car()
|
||||
{
|
||||
wheelCount = 4;
|
||||
seatCount = 5;
|
||||
}
|
||||
};
|
||||
|
||||
class Truck
|
||||
: public Vehicle
|
||||
{
|
||||
public:
|
||||
Truck()
|
||||
{
|
||||
wheelCount = 6;
|
||||
seatCount = 2;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
template<typename T>
|
||||
T sum(T a, T b)
|
||||
{
|
||||
return a + b;
|
||||
}
|
||||
|
||||
class Apple {};
|
||||
class Pear {};
|
||||
|
||||
template<typename Fruit>
|
||||
class Basket
|
||||
{
|
||||
public:
|
||||
Fruit** field;
|
||||
};
|
||||
|
||||
Basket<Apple> apples;
|
||||
Basket<Pear> pears;
|
||||
|
||||
|
||||
class Dog {};
|
||||
|
||||
class Cat
|
||||
{
|
||||
Dog getDog();
|
||||
};
|
||||
|
||||
class Bird
|
||||
{
|
||||
Dog getDog();
|
||||
Cat getCat();
|
||||
};
|
||||
|
||||
class Fish
|
||||
{
|
||||
Dog getDog();
|
||||
Cat getCat();
|
||||
Bird getBird();
|
||||
};
|
||||
|
||||
class Horse
|
||||
: public Dog
|
||||
{
|
||||
Dog getDog();
|
||||
Cat getCat();
|
||||
Bird getBird();
|
||||
Fish getFish();
|
||||
};
|
||||
|
||||
|
||||
class Building {};
|
||||
class House : public Building {};
|
||||
class Tower : public Building {};
|
||||
class SkyScrapper : public Building {};
|
||||
class Mansion : public Building {};
|
||||
class Shard : public House, public Tower, public SkyScrapper, public Mansion {};
|
||||
|
||||
typedef unsigned int uint;
|
||||
uint a = 1 + 2;
|
||||
|
||||
enum Size
|
||||
{
|
||||
SMALL,
|
||||
MEDIUM,
|
||||
LARGE
|
||||
};
|
||||
@@ -6,3 +6,30 @@ public:
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class Fooo
|
||||
{
|
||||
public:
|
||||
void bar()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T, typename T::a::type U>
|
||||
class Foooo1
|
||||
{
|
||||
public:
|
||||
void bar()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T, typename T::type U>
|
||||
class Foooo2
|
||||
{
|
||||
public:
|
||||
void bar()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
@@ -5,4 +5,9 @@ int main()
|
||||
Foo<true, int, float> ft;
|
||||
ft.bar();
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
#include "artificial_player.h"
|
||||
|
||||
ArtificialPlayer::ArtificialPlayer( Field::Token token, const char* name )
|
||||
: Player( token, name ) {
|
||||
}
|
||||
|
||||
ArtificialPlayer::~ArtificialPlayer() {
|
||||
}
|
||||
|
||||
Field::Move ArtificialPlayer::Turn( const Field& field ) const {
|
||||
Field fakeField = field.Clone();
|
||||
Node node = MinMax( fakeField, token_ );
|
||||
return node.move;
|
||||
}
|
||||
|
||||
ArtificialPlayer::Node ArtificialPlayer::MinMax( Field& field, Field::Token token ) const {
|
||||
Node node;
|
||||
node.value = -10000;
|
||||
|
||||
Field::Move move;
|
||||
int sameMove;
|
||||
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
move.row = i;
|
||||
|
||||
for ( int j = 0; j < 3; j++ ) {
|
||||
move.col = j;
|
||||
|
||||
if ( !field.IsEmpty( move ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
field.MakeMove( move, token );
|
||||
|
||||
int turnValue = Evaluate( field, token );
|
||||
if ( !turnValue && !field.IsFull() ) {
|
||||
turnValue = -MinMax( field, Field::Opponent( token ) ).value;
|
||||
}
|
||||
|
||||
field.ClearMove( move );
|
||||
|
||||
if ( turnValue > node.value ) {
|
||||
node.move = move;
|
||||
node.value = turnValue;
|
||||
sameMove = 1;
|
||||
} else if ( turnValue == node.value ) {
|
||||
sameMove++;
|
||||
if ( 1 % sameMove == 0 ) {
|
||||
node.move = move;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
int ArtificialPlayer::Evaluate( const Field& field, Field::Token token ) const {
|
||||
if ( field.SameInRow( token, 3 ) ) {
|
||||
return 2;
|
||||
} else if ( field.SameInRow( Field::Opponent( token ), 2 ) ) {
|
||||
return -1;
|
||||
} else if ( field.SameInRow( token, 2 ) > 1 ) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef _ARTIFICIAL_PLAYER_
|
||||
#define _ARTIFICIAL_PLAYER_
|
||||
|
||||
#include "player.h"
|
||||
|
||||
class ArtificialPlayer : public Player {
|
||||
public:
|
||||
ArtificialPlayer( Field::Token token, const char* name );
|
||||
virtual ~ArtificialPlayer();
|
||||
|
||||
virtual Field::Move Turn( const Field& field ) const;
|
||||
|
||||
private:
|
||||
struct Node {
|
||||
Field::Move move;
|
||||
int value;
|
||||
};
|
||||
|
||||
Node MinMax( Field& field, Field::Token token ) const;
|
||||
|
||||
int Evaluate( const Field& field, Field::Token token ) const;
|
||||
};
|
||||
|
||||
#endif // _ARTIFICIAL_PLAYER_
|
||||
@@ -0,0 +1,126 @@
|
||||
#include "field.h"
|
||||
|
||||
#include "io.h"
|
||||
|
||||
Field::Token Field::Opponent( Token token ) {
|
||||
if ( token == PlayerA ) {
|
||||
return PlayerB;
|
||||
} else if (token == PlayerB){
|
||||
return PlayerA;
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
}
|
||||
|
||||
Field::Field()
|
||||
: left_( 9 ) {
|
||||
grid_ = new Token* [3];
|
||||
for ( int i = 0; i < 3 ; i++ ) {
|
||||
grid_[i] = new Token[3];
|
||||
}
|
||||
}
|
||||
|
||||
Field::~Field() {
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
delete grid_[i];
|
||||
}
|
||||
delete [] grid_;
|
||||
}
|
||||
|
||||
Field Field::Clone() const {
|
||||
Field field;
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
for ( int j = 0; j < 3; j++ ) {
|
||||
field.grid_[i][j] = grid_[i][j];
|
||||
}
|
||||
}
|
||||
field.left_ = left_;
|
||||
return field;
|
||||
}
|
||||
|
||||
void Field::Clear() {
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
for ( int j = 0; j < 3; j++ ) {
|
||||
grid_[i][j] = None;
|
||||
}
|
||||
}
|
||||
left_ = 9;
|
||||
}
|
||||
|
||||
void Field::Show() const {
|
||||
io::stringOut(" 1 2 3\n");
|
||||
for ( int row = 0; row < 3; row++ ) {
|
||||
io::numberOut(row + 1);
|
||||
io::stringOut(" ");
|
||||
|
||||
for ( int col = 0; col < 3; col++ ) {
|
||||
if ( grid_[row][col] == PlayerA ) {
|
||||
io::stringOut(" X ");
|
||||
} else if ( grid_[row][col] == PlayerB ) {
|
||||
io::stringOut(" O ");
|
||||
} else {
|
||||
io::stringOut(" ");
|
||||
}
|
||||
|
||||
if ( col < 2 ) {
|
||||
io::stringOut("|");
|
||||
}
|
||||
}
|
||||
|
||||
if ( row < 2 ) {
|
||||
io::stringOut("\n -----------\n");
|
||||
}
|
||||
}
|
||||
io::stringOut("\n\n");
|
||||
}
|
||||
|
||||
int Field::SameInRow( Token token, int amount ) const {
|
||||
int sum = amount * token;
|
||||
int count = 0;
|
||||
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
if ( grid_[i][0] + grid_[i][1] + grid_[i][2] == sum ) {
|
||||
count++;
|
||||
} else if ( grid_[0][i] + grid_[1][i] + grid_[2][i] == sum ) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if ( grid_[0][0] + grid_[1][1] + grid_[2][2] == sum ) {
|
||||
count++;
|
||||
} else if ( grid_[2][0] + grid_[1][1] + grid_[0][2] == sum ) {
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
bool Field::InRange( const Move& move ) const {
|
||||
return move.row >= 0 && move.row < 3 && move.col >= 0 && move.col < 3;
|
||||
}
|
||||
|
||||
bool Field::IsEmpty( const Move& move ) const {
|
||||
return grid_[move.row][move.col] == None;
|
||||
}
|
||||
|
||||
bool Field::IsFull() const {
|
||||
return left_ == 0;
|
||||
}
|
||||
|
||||
void Field::MakeMove( const Move& move, Token token ) {
|
||||
if ( !InRange( move ) || !IsEmpty( move ) || token == None || !left_ ) {
|
||||
return;
|
||||
}
|
||||
|
||||
grid_[move.row][move.col] = token;
|
||||
left_--;
|
||||
}
|
||||
|
||||
void Field::ClearMove( const Move& move ) {
|
||||
if ( !InRange( move ) || !IsEmpty( move ) || left_ == 9 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
grid_[move.row][move.col] = None;
|
||||
left_++;
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
#ifndef _FIELD_
|
||||
#define _FIELD_
|
||||
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
|
||||
class Field {
|
||||
public:
|
||||
enum Token {
|
||||
@@ -12,132 +9,29 @@ public:
|
||||
PlayerB = 4
|
||||
};
|
||||
|
||||
static Token Opponent( Token token ) {
|
||||
assert( token != None );
|
||||
if ( token == PlayerA ) {
|
||||
return PlayerB;
|
||||
} else {
|
||||
return PlayerA;
|
||||
}
|
||||
}
|
||||
static Token Opponent( Token token );
|
||||
|
||||
struct Move {
|
||||
int row;
|
||||
int col;
|
||||
};
|
||||
|
||||
Field()
|
||||
: left_( 9 ) {
|
||||
grid_ = new Token* [3];
|
||||
for ( int i = 0; i < 3 ; i++ ) {
|
||||
grid_[i] = new Token[3];
|
||||
}
|
||||
}
|
||||
Field();
|
||||
~Field();
|
||||
|
||||
~Field() {
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
delete grid_[i];
|
||||
}
|
||||
delete [] grid_;
|
||||
}
|
||||
Field Clone() const;
|
||||
void Clear();
|
||||
|
||||
Field Clone() const {
|
||||
Field field;
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
for ( int j = 0; j < 3; j++ ) {
|
||||
field.grid_[i][j] = grid_[i][j];
|
||||
}
|
||||
}
|
||||
field.left_ = left_;
|
||||
return field;
|
||||
}
|
||||
void Show() const;
|
||||
|
||||
void Clear() {
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
for ( int j = 0; j < 3; j++ ) {
|
||||
grid_[i][j] = None;
|
||||
}
|
||||
}
|
||||
left_ = 9;
|
||||
}
|
||||
int SameInRow( Token token, int amount ) const;
|
||||
|
||||
void Show() const {
|
||||
std::cout << " 1 2 3\n";
|
||||
for ( int row = 0; row < 3; row++ ) {
|
||||
std::cout << row + 1 << " ";
|
||||
bool InRange( const Move& move ) const;
|
||||
bool IsEmpty( const Move& move ) const;
|
||||
bool IsFull() const;
|
||||
|
||||
for ( int col = 0; col < 3; col++ ) {
|
||||
if ( grid_[row][col] == PlayerA ) {
|
||||
std::cout << " X ";
|
||||
} else if ( grid_[row][col] == PlayerB ) {
|
||||
std::cout << " O ";
|
||||
} else {
|
||||
std::cout << " ";
|
||||
}
|
||||
|
||||
if ( col < 2 ) {
|
||||
std::cout << "|";
|
||||
}
|
||||
}
|
||||
|
||||
if ( row < 2 ) {
|
||||
std::cout << "\n -----------\n";
|
||||
}
|
||||
}
|
||||
std::cout << "\n\n";
|
||||
}
|
||||
|
||||
int SameInRow( Token token, int amount ) const {
|
||||
int sum = amount * token;
|
||||
int count = 0;
|
||||
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
if ( grid_[i][0] + grid_[i][1] + grid_[i][2] == sum ) {
|
||||
count++;
|
||||
} else if ( grid_[0][i] + grid_[1][i] + grid_[2][i] == sum ) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if ( grid_[0][0] + grid_[1][1] + grid_[2][2] == sum ) {
|
||||
count++;
|
||||
} else if ( grid_[2][0] + grid_[1][1] + grid_[0][2] == sum ) {
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
bool InRange( const Move& move ) const {
|
||||
return move.row >= 0 && move.row < 3 && move.col >= 0 && move.col < 3;
|
||||
}
|
||||
|
||||
bool IsEmpty( const Move& move ) const {
|
||||
return grid_[move.row][move.col] == None;
|
||||
}
|
||||
|
||||
bool IsFull() const {
|
||||
return left_ == 0;
|
||||
}
|
||||
|
||||
void MakeMove( const Move& move, Token token ) {
|
||||
assert( InRange( move ) );
|
||||
assert( IsEmpty( move ) );
|
||||
assert( token != None );
|
||||
assert( left_ );
|
||||
|
||||
grid_[move.row][move.col] = token;
|
||||
left_--;
|
||||
}
|
||||
|
||||
void ClearMove( const Move& move ) {
|
||||
assert( InRange(move) );
|
||||
assert( !IsEmpty(move) );
|
||||
assert( left_ < 9 );
|
||||
|
||||
grid_[move.row][move.col] = None;
|
||||
left_++;
|
||||
}
|
||||
void MakeMove( const Move& move, Token token );
|
||||
void ClearMove( const Move& move );
|
||||
|
||||
private:
|
||||
Token** grid_;
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
#include "human_player.h"
|
||||
|
||||
#include "io.h"
|
||||
|
||||
HumanPlayer::HumanPlayer( Field::Token token, const char* name )
|
||||
: Player( token, name ) {
|
||||
}
|
||||
|
||||
HumanPlayer::~HumanPlayer() {
|
||||
}
|
||||
|
||||
Field::Move HumanPlayer::Turn( const Field& field ) const {
|
||||
Field::Move move;
|
||||
io::stringOut(name_);
|
||||
io::stringOut("\n");
|
||||
|
||||
do {
|
||||
move = Input();
|
||||
move.row -= 1;
|
||||
move.col -= 1;
|
||||
} while ( !Check( field, move ) );
|
||||
return move;
|
||||
}
|
||||
|
||||
Field::Move HumanPlayer::Input() const {
|
||||
Field::Move move;
|
||||
move.row = -1;
|
||||
move.col = -1;
|
||||
|
||||
io::stringOut("Insert row: ");
|
||||
move.row = io::numberIn();
|
||||
|
||||
io::stringOut("Insert column: ");
|
||||
move.col = io::numberIn();
|
||||
|
||||
io::stringOut("\n");
|
||||
return move;
|
||||
}
|
||||
|
||||
bool HumanPlayer::Check( const Field& field, const Field::Move& move ) const {
|
||||
if ( !field.InRange( move ) ) {
|
||||
io::stringOut("Wrong input!\n");
|
||||
return false;
|
||||
} else if ( !field.IsEmpty( move ) ) {
|
||||
io::stringOut("Is occupied!\n");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
#ifndef _HUMAN_PLAYER_
|
||||
#define _HUMAN_PLAYER_
|
||||
|
||||
#include "player.h"
|
||||
|
||||
class HumanPlayer : public Player {
|
||||
public:
|
||||
HumanPlayer( Field::Token token, const char* name );
|
||||
virtual ~HumanPlayer();
|
||||
|
||||
virtual Field::Move Turn( const Field& field ) const;
|
||||
|
||||
private:
|
||||
Field::Move Input() const;
|
||||
|
||||
bool Check( const Field& field, const Field::Move& move ) const;
|
||||
};
|
||||
|
||||
#endif // _HUMAN_PLAYER_
|
||||
@@ -0,0 +1,23 @@
|
||||
#include "io.h"
|
||||
|
||||
// #include <iostream>
|
||||
// #include <sstream>
|
||||
// #include <string>
|
||||
|
||||
int io::numberIn() {
|
||||
// std::string input;
|
||||
// getline( std::cin, input );
|
||||
// std::stringstream stream( input );
|
||||
|
||||
int number;
|
||||
// stream >> number;
|
||||
return number;
|
||||
}
|
||||
|
||||
void io::numberOut(int num) {
|
||||
// std::cout << num;
|
||||
}
|
||||
|
||||
void io::stringOut(const char* str) {
|
||||
// std::cout << str;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef _IO_
|
||||
#define _IO_
|
||||
|
||||
namespace io {
|
||||
|
||||
int numberIn();
|
||||
void numberOut(int num);
|
||||
|
||||
void stringOut(const char* str);
|
||||
|
||||
}
|
||||
|
||||
#endif // _IO_
|
||||
@@ -0,0 +1,19 @@
|
||||
#include "player.h"
|
||||
|
||||
Player::Player( Field::Token token, const char* name )
|
||||
: token_( token )
|
||||
, name_( name ) {
|
||||
}
|
||||
|
||||
Player::~Player() {
|
||||
}
|
||||
|
||||
const Field::Token& Player::getToken() const
|
||||
{
|
||||
return token_;
|
||||
}
|
||||
|
||||
const char* Player::getName() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
@@ -1,33 +1,21 @@
|
||||
#ifndef _PLAYER_
|
||||
#define _PLAYER_
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "field.h"
|
||||
|
||||
class Player {
|
||||
public:
|
||||
Player( Field::Token token, const std::string& name )
|
||||
: token_( token )
|
||||
, name_( name ) {
|
||||
}
|
||||
virtual ~Player() {}
|
||||
Player( Field::Token token, const char* name );
|
||||
virtual ~Player();
|
||||
|
||||
virtual Field::Move Turn( const Field& field ) const = 0;
|
||||
|
||||
const Field::Token& getToken() const
|
||||
{
|
||||
return token_;
|
||||
}
|
||||
|
||||
const std::string getName() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
const Field::Token& getToken() const;
|
||||
const char* getName() const;
|
||||
|
||||
protected:
|
||||
const Field::Token token_;
|
||||
const std::string name_;
|
||||
const char* name_;
|
||||
};
|
||||
|
||||
#endif // _PLAYER_
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
#include "tictactoe.h"
|
||||
|
||||
#include "artificial_player.h"
|
||||
#include "human_player.h"
|
||||
#include "io.h"
|
||||
|
||||
TicTacToe::TicTacToe() {
|
||||
players_[0] = 0;
|
||||
players_[1] = 0;
|
||||
}
|
||||
|
||||
TicTacToe::~TicTacToe() {
|
||||
Reset();
|
||||
}
|
||||
|
||||
bool TicTacToe::Start() {
|
||||
Reset();
|
||||
io::stringOut("Tic Tac Toe\n\n[1] Human\n[2] Computer\n[3] Quit\n\n");
|
||||
|
||||
players_[0] = SelectPlayer( Field::PlayerA, "Player A" );
|
||||
if ( !players_[0] ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
players_[1] = SelectPlayer( Field::PlayerB, "Player B" );
|
||||
if ( !players_[1] ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
io::stringOut("\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
void TicTacToe::Run() {
|
||||
field_.Show();
|
||||
|
||||
int playerIndex = 0;
|
||||
|
||||
for ( int i = 0; i < 9; i++ ) {
|
||||
Player& player = *players_[playerIndex];
|
||||
|
||||
field_.MakeMove( player.Turn( field_ ), player.getToken() );
|
||||
field_.Show();
|
||||
|
||||
if ( field_.SameInRow( player.getToken(), 3 ) ) {
|
||||
io::stringOut(player.getName());
|
||||
io::stringOut(" won!\n\n");
|
||||
return;
|
||||
}
|
||||
|
||||
playerIndex = ( playerIndex + 1 ) % 2;
|
||||
}
|
||||
|
||||
io::stringOut("Game ends in draw!\n\n");
|
||||
}
|
||||
|
||||
void TicTacToe::Reset() {
|
||||
field_.Clear();
|
||||
|
||||
for ( int i = 0; i < 2; i++ ) {
|
||||
if ( players_[i] ) {
|
||||
delete players_[i];
|
||||
players_[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Player* TicTacToe::SelectPlayer( Field::Token token, const char* name ) const {
|
||||
int selection = 0;
|
||||
|
||||
while ( true ) {
|
||||
io::stringOut("Choose ");
|
||||
io::stringOut(name);
|
||||
io::stringOut(": ");
|
||||
|
||||
selection = io::numberIn();
|
||||
|
||||
switch ( selection ) {
|
||||
case 1 : return new HumanPlayer( token, name );
|
||||
case 2 : return new ArtificialPlayer( token, name );
|
||||
case 3 : return 0;
|
||||
default : io::stringOut("Wrong input!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,90 +1,20 @@
|
||||
#ifndef _TIC_TAC_TOE_
|
||||
#define _TIC_TAC_TOE_
|
||||
|
||||
#include "computer.h"
|
||||
#include "field.h"
|
||||
#include "human.h"
|
||||
#include "input.h"
|
||||
#include "player.h"
|
||||
|
||||
class TicTacToe {
|
||||
public:
|
||||
TicTacToe() {
|
||||
players_[0] = NULL;
|
||||
players_[1] = NULL;
|
||||
}
|
||||
TicTacToe();
|
||||
~TicTacToe();
|
||||
|
||||
~TicTacToe() {
|
||||
Reset();
|
||||
}
|
||||
|
||||
bool Start() {
|
||||
Reset();
|
||||
std::cout << "Tic Tac Toe\n\n[1] Human\n[2] Computer\n[3] Quit\n\n";
|
||||
|
||||
players_[0] = SelectPlayer( Field::PlayerA, "PlayerA" );
|
||||
if ( !players_[0] ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
players_[1] = SelectPlayer( Field::PlayerB, "PlayerB" );
|
||||
if ( !players_[1] ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::cout << '\n';
|
||||
return true;
|
||||
}
|
||||
|
||||
void Run() {
|
||||
field_.Show();
|
||||
|
||||
int playerIndex = 0;
|
||||
|
||||
for ( int i = 0; i < 9; i++ ) {
|
||||
Player& player = *players_[playerIndex];
|
||||
|
||||
field_.MakeMove( player.Turn( field_ ), player.getToken() );
|
||||
field_.Show();
|
||||
|
||||
if ( field_.SameInRow( player.getToken(), 3 ) ) {
|
||||
std::cout << player.getName() << " won!\n\n";
|
||||
return;
|
||||
}
|
||||
|
||||
playerIndex = ( playerIndex + 1 ) % 2;
|
||||
}
|
||||
|
||||
std::cout << "Game ends in draw!\n\n";
|
||||
}
|
||||
bool Start();
|
||||
void Run();
|
||||
|
||||
private:
|
||||
void Reset() {
|
||||
field_.Clear();
|
||||
|
||||
for ( int i = 0; i < 2; i++ ) {
|
||||
if ( players_[i] ) {
|
||||
delete players_[i];
|
||||
players_[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Player* SelectPlayer( Field::Token token, const std::string& name ) const {
|
||||
int selection;
|
||||
|
||||
while ( true ) {
|
||||
std::cout << "Choose " << name << ": ";
|
||||
input::number( &selection );
|
||||
|
||||
switch ( selection ) {
|
||||
case 1 : return new HumanPlayer( token, name );
|
||||
case 2 : return new ArtificialPlayer( token, name );
|
||||
case 3 : return NULL;
|
||||
default : std::cout << "Wrong input!\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
void Reset();
|
||||
Player* SelectPlayer( Field::Token token, const char* name ) const;
|
||||
|
||||
Player* players_[2];
|
||||
Field field_;
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
#ifndef _FIELD_
|
||||
#define _FIELD_
|
||||
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
|
||||
class Field {
|
||||
public:
|
||||
enum Token {
|
||||
None = 0,
|
||||
PlayerA = 1,
|
||||
PlayerB = 4
|
||||
};
|
||||
|
||||
static Token Opponent( Token token ) {
|
||||
assert( token != None );
|
||||
if ( token == PlayerA ) {
|
||||
return PlayerB;
|
||||
} else {
|
||||
return PlayerA;
|
||||
}
|
||||
}
|
||||
|
||||
struct Move {
|
||||
int row;
|
||||
int col;
|
||||
};
|
||||
|
||||
Field()
|
||||
: left_( 9 ) {
|
||||
grid_ = new Token* [3];
|
||||
for ( int i = 0; i < 3 ; i++ ) {
|
||||
grid_[i] = new Token[3];
|
||||
}
|
||||
}
|
||||
|
||||
~Field() {
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
delete grid_[i];
|
||||
}
|
||||
delete [] grid_;
|
||||
}
|
||||
|
||||
Field Clone() const {
|
||||
Field field;
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
for ( int j = 0; j < 3; j++ ) {
|
||||
field.grid_[i][j] = grid_[i][j];
|
||||
}
|
||||
}
|
||||
field.left_ = left_;
|
||||
return field;
|
||||
}
|
||||
|
||||
void Clear() {
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
for ( int j = 0; j < 3; j++ ) {
|
||||
grid_[i][j] = None;
|
||||
}
|
||||
}
|
||||
left_ = 9;
|
||||
}
|
||||
|
||||
void Show() const {
|
||||
std::cout << " 1 2 3\n";
|
||||
for ( int row = 0; row < 3; row++ ) {
|
||||
std::cout << row + 1 << " ";
|
||||
|
||||
for ( int col = 0; col < 3; col++ ) {
|
||||
if ( grid_[row][col] == PlayerA ) {
|
||||
std::cout << " X ";
|
||||
} else if ( grid_[row][col] == PlayerB ) {
|
||||
std::cout << " O ";
|
||||
} else {
|
||||
std::cout << " ";
|
||||
}
|
||||
|
||||
if ( col < 2 ) {
|
||||
std::cout << "|";
|
||||
}
|
||||
}
|
||||
|
||||
if ( row < 2 ) {
|
||||
std::cout << "\n -----------\n";
|
||||
}
|
||||
}
|
||||
std::cout << "\n\n";
|
||||
}
|
||||
|
||||
int SameInRow( Token token, int amount ) const {
|
||||
int sum = amount * token;
|
||||
int count = 0;
|
||||
|
||||
for ( int i = 0; i < 3; i++ ) {
|
||||
if ( grid_[i][0] + grid_[i][1] + grid_[i][2] == sum ) {
|
||||
count++;
|
||||
} else if ( grid_[0][i] + grid_[1][i] + grid_[2][i] == sum ) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if ( grid_[0][0] + grid_[1][1] + grid_[2][2] == sum ) {
|
||||
count++;
|
||||
} else if ( grid_[2][0] + grid_[1][1] + grid_[0][2] == sum ) {
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
bool InRange( const Move& move ) const {
|
||||
return move.row >= 0 && move.row < 3 && move.col >= 0 && move.col < 3;
|
||||
}
|
||||
|
||||
bool IsEmpty( const Move& move ) const {
|
||||
return grid_[move.row][move.col] == None;
|
||||
}
|
||||
|
||||
bool IsFull() const {
|
||||
return left_ == 0;
|
||||
}
|
||||
|
||||
void MakeMove( const Move& move, Token token ) {
|
||||
assert( InRange( move ) );
|
||||
assert( IsEmpty( move ) );
|
||||
assert( token != None );
|
||||
assert( left_ );
|
||||
|
||||
grid_[move.row][move.col] = token;
|
||||
left_--;
|
||||
}
|
||||
|
||||
void ClearMove( const Move& move ) {
|
||||
assert( InRange(move) );
|
||||
assert( !IsEmpty(move) );
|
||||
assert( left_ < 9 );
|
||||
|
||||
grid_[move.row][move.col] = None;
|
||||
left_++;
|
||||
}
|
||||
|
||||
private:
|
||||
Token** grid_;
|
||||
int left_;
|
||||
};
|
||||
|
||||
#endif // _FIELD_
|
||||
@@ -0,0 +1,11 @@
|
||||
#include "tictactoe.h"
|
||||
|
||||
int main() {
|
||||
TicTacToe tictactoe;
|
||||
|
||||
while ( tictactoe.Start() ) {
|
||||
tictactoe.Run();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
#ifndef _PLAYER_
|
||||
#define _PLAYER_
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "field.h"
|
||||
|
||||
class Player {
|
||||
public:
|
||||
Player( Field::Token token, const std::string& name )
|
||||
: token_( token )
|
||||
, name_( name ) {
|
||||
}
|
||||
virtual ~Player() {}
|
||||
|
||||
virtual Field::Move Turn( const Field& field ) const = 0;
|
||||
|
||||
const Field::Token& getToken() const
|
||||
{
|
||||
return token_;
|
||||
}
|
||||
|
||||
const std::string getName() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
|
||||
protected:
|
||||
const Field::Token token_;
|
||||
const std::string name_;
|
||||
};
|
||||
|
||||
#endif // _PLAYER_
|
||||
@@ -0,0 +1,93 @@
|
||||
#ifndef _TIC_TAC_TOE_
|
||||
#define _TIC_TAC_TOE_
|
||||
|
||||
#include "computer.h"
|
||||
#include "field.h"
|
||||
#include "human.h"
|
||||
#include "input.h"
|
||||
#include "player.h"
|
||||
|
||||
class TicTacToe {
|
||||
public:
|
||||
TicTacToe() {
|
||||
players_[0] = NULL;
|
||||
players_[1] = NULL;
|
||||
}
|
||||
|
||||
~TicTacToe() {
|
||||
Reset();
|
||||
}
|
||||
|
||||
bool Start() {
|
||||
Reset();
|
||||
std::cout << "Tic Tac Toe\n\n[1] Human\n[2] Computer\n[3] Quit\n\n";
|
||||
|
||||
players_[0] = SelectPlayer( Field::PlayerA, "PlayerA" );
|
||||
if ( !players_[0] ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
players_[1] = SelectPlayer( Field::PlayerB, "PlayerB" );
|
||||
if ( !players_[1] ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::cout << '\n';
|
||||
return true;
|
||||
}
|
||||
|
||||
void Run() {
|
||||
field_.Show();
|
||||
|
||||
int playerIndex = 0;
|
||||
|
||||
for ( int i = 0; i < 9; i++ ) {
|
||||
Player& player = *players_[playerIndex];
|
||||
|
||||
field_.MakeMove( player.Turn( field_ ), player.getToken() );
|
||||
field_.Show();
|
||||
|
||||
if ( field_.SameInRow( player.getToken(), 3 ) ) {
|
||||
std::cout << player.getName() << " won!\n\n";
|
||||
return;
|
||||
}
|
||||
|
||||
playerIndex = ( playerIndex + 1 ) % 2;
|
||||
}
|
||||
|
||||
std::cout << "Game ends in draw!\n\n";
|
||||
}
|
||||
|
||||
private:
|
||||
void Reset() {
|
||||
field_.Clear();
|
||||
|
||||
for ( int i = 0; i < 2; i++ ) {
|
||||
if ( players_[i] ) {
|
||||
delete players_[i];
|
||||
players_[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Player* SelectPlayer( Field::Token token, const std::string& name ) const {
|
||||
int selection;
|
||||
|
||||
while ( true ) {
|
||||
std::cout << "Choose " << name << ": ";
|
||||
input::number( &selection );
|
||||
|
||||
switch ( selection ) {
|
||||
case 1 : return new HumanPlayer( token, name );
|
||||
case 2 : return new ArtificialPlayer( token, name );
|
||||
case 3 : return NULL;
|
||||
default : std::cout << "Wrong input!\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Player* players_[2];
|
||||
Field field_;
|
||||
};
|
||||
|
||||
#endif // _TIC_TAC_TOE_
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<config>
|
||||
<source>
|
||||
<SourcePath>data/src</SourcePath>
|
||||
</source>
|
||||
</config>
|
||||
@@ -1,67 +1,337 @@
|
||||
ConfigManager.cpp WARNING: value path/to/nowhere is not present in config.
|
||||
Storage.cpp INFO: file: input.cc < 0:0 0:0>
|
||||
Storage.cpp INFO: class: A <input.cc 1:7 1:7>
|
||||
Storage.cpp INFO: method: A::A <input.cc 4:2 4:2>
|
||||
Storage.cpp INFO: global usage: A::A -> A::count <input.cc 5:3 5:7>
|
||||
Storage.cpp INFO: method: A::A <input.cc 8:2 8:2>
|
||||
Storage.cpp INFO: global usage: A::A -> A::count <input.cc 9:3 9:7>
|
||||
Storage.cpp INFO: method: A::getCount <input.cc 12:13 12:20>
|
||||
Storage.cpp INFO: global usage: A::getCount -> A::count <input.cc 14:10 14:14>
|
||||
Storage.cpp INFO: method: A::process <input.cc 18:15 18:21>
|
||||
Storage.cpp INFO: field: A::count <input.cc 21:13 21:17>
|
||||
Storage.cpp INFO: class: B <input.cc 24:7 24:7>
|
||||
Storage.cpp INFO: inheritance: B : A <input.cc 25:4 25:11>
|
||||
Storage.cpp INFO: method: B::process <input.cc 28:15 28:21>
|
||||
Storage.cpp INFO: override: A::process -> B::process < 0:0 0:0>
|
||||
Storage.cpp INFO: type usage: B::process -> int <input.cc 30:3 30:5>
|
||||
Storage.cpp INFO: function: _main_ <input.cc 34:5 34:10>
|
||||
Storage.cpp INFO: type usage: _main_ -> B <input.cc 36:2 36:2>
|
||||
Storage.cpp INFO: call: _main_ -> B::B <input.cc 36:4 36:4>
|
||||
Storage.cpp INFO: call: _main_ -> A::getCount <input.cc 38:9 38:21>
|
||||
SearchMatch.cpp INFO:
|
||||
1 matches for "_main_":
|
||||
931 _main_
|
||||
^^^^^^
|
||||
|
||||
SearchMatch.cpp INFO:
|
||||
1 matches for "_main_":
|
||||
931 _main_
|
||||
^^^^^^
|
||||
|
||||
SearchMatch.cpp INFO:
|
||||
1 matches for "A::A":
|
||||
190 A::A
|
||||
^^^^
|
||||
|
||||
Storage.cpp INFO: file: input.cc < 0:0 0:0>
|
||||
Storage.cpp INFO: class: A <input.cc 1:7 1:7>
|
||||
Storage.cpp INFO: method: A::A <input.cc 4:2 4:2>
|
||||
Storage.cpp INFO: global usage: A::A -> A::count <input.cc 5:3 5:7>
|
||||
Storage.cpp INFO: method: A::getCount <input.cc 8:13 8:20>
|
||||
Storage.cpp INFO: global usage: A::getCount -> A::count <input.cc 10:10 10:14>
|
||||
Storage.cpp INFO: method: A::process <input.cc 14:15 14:21>
|
||||
Storage.cpp INFO: field: A::count <input.cc 17:13 17:17>
|
||||
Storage.cpp INFO: class: B <input.cc 20:7 20:7>
|
||||
Storage.cpp INFO: inheritance: B : A <input.cc 21:4 21:11>
|
||||
Storage.cpp INFO: method: B::process <input.cc 24:15 24:21>
|
||||
Storage.cpp INFO: override: A::process -> B::process < 0:0 0:0>
|
||||
Storage.cpp INFO: type usage: B::process -> int <input.cc 26:3 26:5>
|
||||
Storage.cpp INFO: function: main <input.cc 30:5 30:8>
|
||||
Storage.cpp INFO: type usage: main -> B <input.cc 32:2 32:2>
|
||||
Storage.cpp INFO: call: main -> B::B <input.cc 32:4 32:4>
|
||||
Storage.cpp INFO: call: main -> A::getCount <input.cc 34:9 34:21>
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml
|
||||
ConfigManager.cpp WARNING: value source/HeaderSearchPaths/HeaderSearchPath is not present in config.
|
||||
Token.cpp ERROR: Location Id was not referenced by this Token.
|
||||
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
|
||||
Node.cpp WARNING: Cannot change NodeType after it was already set from namespace to class
|
||||
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Nodes are not plain copies.
|
||||
Edge.cpp ERROR: Edge usage can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge usage can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge usage can't go from Node undefined to Node undefined
|
||||
Settings.cpp WARNING: File for Settings not found.
|
||||
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge use can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge use can't go from Node undefined to Node undefined
|
||||
Edge.cpp ERROR: Edge child can't go from Node undefined to Node undefined
|
||||
Settings.cpp WARNING: File for Settings not found: data/SettingsTestSuite/wrong_settings.xml
|
||||
ConfigManager.cpp WARNING: value Bool is not present in config.
|
||||
ConfigManager.cpp WARNING: value Int is not present in config.
|
||||
ConfigManager.cpp WARNING: value Float is not present in config.
|
||||
ConfigManager.cpp WARNING: value String is not present in config.
|
||||
Settings.cpp WARNING: File for Settings not found.
|
||||
Settings.cpp WARNING: File for Settings not found: data/SettingsTestSuite/wrong_settings.xml
|
||||
ConfigManager.cpp WARNING: value Bool is not present in config.
|
||||
ConfigManager.cpp WARNING: value Int is not present in config.
|
||||
ConfigManager.cpp WARNING: value Float is not present in config.
|
||||
@@ -71,71 +341,100 @@ ConfigManager.cpp WARNING: value Int is not present in config.
|
||||
ConfigManager.cpp WARNING: value Float is not present in config.
|
||||
ConfigManager.cpp WARNING: value String is not present in config.
|
||||
ConfigManager.cpp WARNING: value NewBool is not present in config.
|
||||
Graph.cpp ERROR: Can't remove member edge, without removing the child node.
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: typedef: type -> int <file.cpp 1:1 1:1>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: class: Class <file.cpp 1:1 1:1>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: struct: Struct <file.cpp 1:1 1:1>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: global: Global <file.cpp 1:42 1:42>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: global: Global <file.cpp 1:7 1:7>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: field: m_field <file.cpp 1:3 1:3>
|
||||
Storage.cpp ERROR: Field is not a member of anything.
|
||||
Storage.cpp ERROR: Field needs to have access type [public, protected, private] but has none.
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: field: Struct::m_field <file.cpp 1:11 1:11>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: function: isTrue <file.cpp 1:14 1:14>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: method: isMethod <file.cpp 1:9 1:9>
|
||||
Storage.cpp ERROR: Method is not a member of anything.
|
||||
Storage.cpp ERROR: Method needs to have access type [public, protected, private] but has none.
|
||||
Storage.cpp INFO: method: isMethod <file.cpp 1:1 1:1>
|
||||
Storage.cpp ERROR: Method is not a member of anything.
|
||||
Storage.cpp ERROR: Method needs to have access type [public, protected, private] but has none.
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: method: Class::isMethod <file.cpp 1:1 1:1>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: namespace: utility <file.cpp 1:1 1:1>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: enum: Category <file.cpp 1:17 1:17>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: enum: Class::Category <file.cpp 1:1 1:1>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: enum constant: VALUE <file.cpp 1:1 1:1>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: class: ClassA <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: class: ClassB <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: inheritance: ClassB : ClassA <file.cpp 1:5 1:5>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: struct: StructA <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: struct: StructB <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: inheritance: StructB : StructA <file.cpp 1:5 1:5>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: method: A::isMethod <file.cpp 1:9 1:9>
|
||||
Storage.cpp INFO: method: B::isMethod <file.cpp 1:7 1:7>
|
||||
Storage.cpp INFO: override: A::isMethod -> B::isMethod < 0:0 0:0>
|
||||
Storage.cpp INFO: override: A::isMethod -> B::isMethod <file.cpp 1:4 1:4>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: function: func <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: call: isTrue -> func <file.cpp 1:9 1:9>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: global: global <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: call: global -> isTrue <file.cpp 1:7 1:7>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: field: Foo::m_field <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: field usage: isTrue -> Foo::m_field <file.cpp 1:7 1:7>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: global: global <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: global usage: isTrue -> global <file.cpp 1:7 1:7>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: struct: Struct <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: type usage: isTrue -> Struct <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: function: isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: function: isTrue <file.h 1:0 1:0>
|
||||
Storage.cpp INFO: function: main <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: call: main -> isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: function: isTrue <file.h 1:0 1:0>
|
||||
Storage.cpp INFO: function: main <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: call: main -> isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: function: isTrue <file.h 1:0 1:0>
|
||||
Storage.cpp INFO: function: main <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: call: main -> isTrue <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: file: file.h < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.h
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.cpp
|
||||
Storage.cpp INFO: file: file.h < 0:0 0:0>
|
||||
TextAccess.cpp ERROR: Could not open file file.h
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
Storage.cpp INFO: include: file.h <file.cpp 1:7 1:7>
|
||||
Storage.cpp INFO: file: f.h < 0:0 0:0>
|
||||
Storage.cpp INFO: file: file.h < 0:0 0:0>
|
||||
Storage.cpp INFO: file: file.cpp < 0:0 0:0>
|
||||
Storage.cpp INFO: include: f.h <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: include: file.h <file.cpp 1:0 1:0>
|
||||
Storage.cpp INFO: file: file.h < 0:0 0:0>
|
||||
TextAccess.cpp WARNING: Index 'firstLine' has to be lower or equal index 'lastLine', is 3 > 2
|
||||
TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
|
||||
TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
|
||||
|
||||
@@ -1,21 +1,29 @@
|
||||
if (UNIX)
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build_release")
|
||||
else()
|
||||
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build_debug")
|
||||
endif()
|
||||
else()
|
||||
set(CLANG_BUILD_PATH "$ENV{CLANG_DIR}/build")
|
||||
endif()
|
||||
|
||||
|
||||
execute_process(
|
||||
COMMAND $ENV{CLANG_DIR}/build/bin/llvm-config --cxxflags
|
||||
COMMAND ${CLANG_BUILD_PATH}/bin/llvm-config --cxxflags
|
||||
OUTPUT_VARIABLE CLANG_DEFINITIONS
|
||||
)
|
||||
|
||||
# Remove unwanted flags
|
||||
string(REPLACE "-fno-exceptions" "" CLANG_DEFINITIONS "${CLANG_DEFINITIONS}")
|
||||
string(REPLACE "-fno-rtti" "" CLANG_DEFINITIONS "${CLANG_DEFINITIONS}")
|
||||
|
||||
set(CLANG_INCLUDE_DIRS
|
||||
"$ENV{CLANG_DIR}/llvm/tools/clang/include"
|
||||
"$ENV{CLANG_DIR}/build/tools/clang/include"
|
||||
"${CLANG_BUILD_PATH}/tools/clang/include"
|
||||
)
|
||||
|
||||
|
||||
set(CLANG_LIBRARY_DIRS "$ENV{CLANG_DIR}/build/lib")
|
||||
if (UNIX)
|
||||
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||
set(CLANG_LIBRARY_DIRS "$ENV{CLANG_DIR}/build/Release+Asserts/lib")
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
set(CLANG_LIBRARY_DIRS "${CLANG_BUILD_PATH}/lib")
|
||||
|
||||
set(CLANG_LIBRARIES
|
||||
#clangApplyReplacements
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# execute_process(
|
||||
# COMMAND ${CMAKE_SOURCE_DIR}/setup/Linux/findAndCopyLibraries.sh
|
||||
# WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
# )
|
||||
|
||||
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/data
|
||||
DESTINATION share/coati/.config/coati
|
||||
PATTERN "log/*" EXCLUDE
|
||||
PATTERN "projects" EXCLUDE
|
||||
PATTERN "src" EXCLUDE
|
||||
PATTERN "ApplicationSettings.xml" EXCLUDE
|
||||
PATTERN "ApplicationSettings_distr.xml" EXCLUDE
|
||||
PATTERN "ProjectSettings_template.xml" EXCLUDE
|
||||
PATTERN "ApplicationSettings_template.xml" EXCLUDE
|
||||
)
|
||||
|
||||
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/app/data/src/tictactoe
|
||||
DESTINATION share/coati/.config/coati/data/projects
|
||||
)
|
||||
|
||||
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/projects/tictactoe.xml
|
||||
DESTINATION share/coati/.config/coati/data/projects/tictactoe
|
||||
)
|
||||
|
||||
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/ApplicationSettings_distr.xml
|
||||
DESTINATION share/coati/.config/coati/data
|
||||
RENAME ApplicationSettings.xml)
|
||||
|
||||
INSTALL(FILES ${CMAKE_SOURCE_DIR}/setup/Linux/coati.desktop
|
||||
DESTINATION share/applications
|
||||
)
|
||||
INSTALL(FILES ${CMAKE_SOURCE_DIR}/bin/app/data/gui/icon/logo_1024_1024.png
|
||||
DESTINATION share/icons
|
||||
RENAME coati.png)
|
||||
|
||||
INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/setup/Linux/lib
|
||||
DESTINATION share/coati
|
||||
)
|
||||
INSTALL(FILES
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/libqxcb.so
|
||||
DESTINATION share/coati/platforms
|
||||
)
|
||||
INSTALL(PROGRAMS
|
||||
${CMAKE_SOURCE_DIR}/setup/Linux/Coati.sh
|
||||
DESTINATION share/coati
|
||||
)
|
||||
INSTALL(PROGRAMS ${CMAKE_SOURCE_DIR}/setup/Linux/coati
|
||||
DESTINATION bin/
|
||||
)
|
||||
# add the automatically determined parts of the RPATH
|
||||
# which point to directories outside the build tree to the install RPATH
|
||||
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
INSTALL(TARGETS ${APP_PROJECT_NAME}
|
||||
DESTINATION share/coati
|
||||
)
|
||||
|
||||
SET(CPACK_GENERATOR "DEB;TGZ")
|
||||
SET(CPACK_ARCHIVE_COMPONENT_INSTALL "ON")
|
||||
|
||||
# DEBIAN PACKAGE
|
||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Andreas Stallinger <astallinger@coati.io>")
|
||||
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
|
||||
SET(CPACK_PACKAGE_NAME "Coati")
|
||||
SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "http://coati.io")
|
||||
SET(CPACK_DEBIAN_PACKAGE_SECTION "devel")
|
||||
SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local")
|
||||
SET(CPACK_PACKAGE_VERSION ${GIT_VERSION_NUMBER})
|
||||
SET(CPACK_PACKAGE_EXECUTABLES "Coati")
|
||||
SET(CPACK_STRIP_FILES "share/coati/Coati")
|
||||
|
||||
INCLUDE(CPack)
|
||||
@@ -0,0 +1,35 @@
|
||||
# Generates the lincens.h file
|
||||
# For adding a new 3rd Party License add the License File to the 3rd Party License Folder
|
||||
# and a new AddLicense Line in below
|
||||
|
||||
set(LICENSES "")
|
||||
set(LICENSE_ARRAY "")
|
||||
set(LICENSEFOLDER "setup/3rdPartyLicenses")
|
||||
|
||||
function(ReadLicense licenseFile licenseVariable)
|
||||
file(READ ${licenseFile} tempVariable)
|
||||
STRING(REGEX REPLACE "\"" "\\\\\"" tempVariable "${tempVariable}")
|
||||
STRING(REGEX REPLACE "\n" "\\\\n\"\n\t\"" tempVariable "${tempVariable}")
|
||||
set(var "\n\nstatic const char *${licenseVariable}=\n\t\"")
|
||||
set(LICENSES "${LICENSES}${var}${tempVariable}\"\;" PARENT_SCOPE)
|
||||
endfunction(ReadLicense)
|
||||
|
||||
function(AddLicense licenseName licenseURL licenseFile)
|
||||
ReadLicense(${licenseFile} ${licenseName}_license)
|
||||
set(LICENSES ${LICENSES} PARENT_SCOPE)
|
||||
set(LICENSE_ARRAY "${LICENSE_ARRAY}\n\tThirdPartyLicense(\"${licenseName}\", \"${licenseURL}\", ${licenseName}_license)," PARENT_SCOPE)
|
||||
endfunction(AddLicense)
|
||||
|
||||
AddLicense("Qt" "http://qt.io" "${LICENSEFOLDER}/qt_LICENSE.TXT")
|
||||
AddLicense("Clang" "http://clang.llvm.org/" "${LICENSEFOLDER}/clang_LICENSE.TXT")
|
||||
AddLicense("Boost" "http://www.boost.org" "${LICENSEFOLDER}/boost_LICENSE.TXT")
|
||||
AddLicense("TinyXMl" "http://www.grinninglizard.com/tinyxml2/" "${LICENSEFOLDER}/tinyxml_LICENSE.TXT")
|
||||
AddLicense("CppSQLite" "http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite" "${LICENSEFOLDER}/CppSQLite_LICENSE.TXT")
|
||||
AddLicense("Eigen" "http://eigen.tuxfamily.org" "${LICENSEFOLDER}/eigen_LICENSE.TXT")
|
||||
|
||||
set(LICENSE_ARRAY "${LICENSE_ARRAY}\n")
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/src/app/licenses.h.in
|
||||
${CMAKE_SOURCE_DIR}/build/src/app/licenses.h
|
||||
)
|
||||
@@ -0,0 +1,48 @@
|
||||
# simple check for a git repo
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
find_package(Git)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} log -1 --format=%ci
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_TIME
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} describe --long --match "[0-9]*" --abbrev=7 HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_VERSION_NUMBER
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
else(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
set(GIT_BRANCH "")
|
||||
set(GIT_COMMIT_HASH "")
|
||||
set(GIT_VERSION_NUMBER "")
|
||||
set(BUILD_TYPE "")
|
||||
|
||||
endif(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
|
||||
message(STATUS "Git current branch: ${GIT_BRANCH}")
|
||||
message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}")
|
||||
message(STATUS "Git commit time: ${GIT_COMMIT_TIME}")
|
||||
message(STATUS "Git version number:" ${GIT_VERSION_NUMBER} )
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/src/app/version.h.in
|
||||
${CMAKE_SOURCE_DIR}/build/src/app/version.h
|
||||
)
|
||||
@@ -0,0 +1,7 @@
|
||||
# # build type needs to be in added as definition because of visual studio
|
||||
message(STATUS "setting up the buildtype for versioning")
|
||||
if(MSVC)
|
||||
add_definitions(-DBUILD_TYPE="${ConfigurationName}")
|
||||
else(MSVC)
|
||||
add_definitions(-DBUILD_TYPE="${CMAKE_BUILD_TYPE}")
|
||||
endif(MSVC)
|
||||
@@ -27,6 +27,11 @@ then
|
||||
#echo "debug app"
|
||||
ninja -C build/Debug Coati && cd bin/app && Debug/Coati
|
||||
fi
|
||||
elif [ "$1" = "package" ] || [ "$1" = "p" ]
|
||||
then
|
||||
ninja package -C build/Release Coati
|
||||
mkdir -p distr && cp build/Release/Coati*.deb distr && cp build/Release/Coati*.tar.gz distr
|
||||
echo "Packages copied into the distr folder"
|
||||
else
|
||||
echo "no arguments: first argument 'release' or 'debug', second argument 'test' for tests"
|
||||
fi
|
||||
|
||||
@@ -40,7 +40,7 @@ fi
|
||||
|
||||
# fetch remote changes
|
||||
echo -e $INFO "Fetching changes"
|
||||
git fetch origin master
|
||||
git fetch origin master --tags
|
||||
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
|
||||
@@ -48,7 +48,7 @@ if [ $PLATFORM == "Windows" ]; then
|
||||
|
||||
echo -e $INFO "copy test_main file"
|
||||
cp -u setup/cxx_test/windows/test_main.cpp build
|
||||
|
||||
|
||||
echo -e $INFO "creating program icon"
|
||||
sh script/create_windows_icon.sh
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
The Code Project Open License (CPOL) 1.02
|
||||
|
||||
Preamble
|
||||
========
|
||||
|
||||
This License governs Your use of the Work. This License is intended to allow developers to use the Source Code and Executable Files provided as part of the Work in any application in any form.
|
||||
|
||||
The main points subject to the terms of the License are:
|
||||
|
||||
* Source Code and Executable Files can be used in commercial applications;
|
||||
* Source Code and Executable Files can be redistributed; and
|
||||
* Source Code can be modified to create derivative works.
|
||||
* No claim of suitability, guarantee, or any warranty whatsoever is provided. The software is provided "as-is".
|
||||
* The Article accompanying the Work may not be distributed or republished without the Author's consent
|
||||
|
||||
This License is entered between You, the individual or other entity reading or otherwise making use of the Work licensed pursuant to this License and the individual or other entity which offers the Work under the terms of this License ("Author").
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CODE PROJECT OPEN LICENSE ("LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HEREIN, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE AUTHOR GRANTS YOU THE RIGHTS CONTAINED HEREIN IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO ACCEPT AND BE BOUND BY THE TERMS OF THIS LICENSE, YOU CANNOT MAKE ANY USE OF THE WORK.
|
||||
|
||||
1. Definitions.
|
||||
a. "Articles" means, collectively, all articles written by Author which describes how the Source Code and Executable Files for the Work may be used by a user.
|
||||
b. "Author" means the individual or entity that offers the Work under the terms of this License.
|
||||
c. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works.
|
||||
d. "Executable Files" refer to the executables, binary files, configuration and any required data files included in the Work.
|
||||
e. "Publisher" means the provider of the website, magazine, CD-ROM, DVD or other medium from or by which the Work is obtained by You.
|
||||
f. "Source Code" refers to the collection of source code and configuration files used to create the Executable Files.
|
||||
g. "Standard Version" refers to such a Work if it has not been modified, or has been modified in accordance with the consent of the Author, such consent being in the full discretion of the Author.
|
||||
h. "Work" refers to the collection of files distributed by the Publisher, including the Source Code, Executable Files, binaries, data files, documentation, whitepapers and the Articles.
|
||||
i. "You" is you, an individual or entity wishing to use the Work and exercise your rights under this License.
|
||||
|
||||
2. Fair Use/Fair Use Rights. Nothing in this License is intended to reduce, limit, or restrict any rights arising from fair use, fair dealing, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws.
|
||||
|
||||
3. License Grant. Subject to the terms and conditions of this License, the Author hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
|
||||
|
||||
a. You may use the standard version of the Source Code or Executable Files in Your own applications.
|
||||
b. You may apply bug fixes, portability fixes and other modifications obtained from the Public Domain or from the Author. A Work modified in such a way shall still be considered the standard version and will be subject to this License.
|
||||
c. You may otherwise modify Your copy of this Work (excluding the Articles) in any way to create a Derivative Work, provided that You insert a prominent notice in each changed file stating how, when and where You changed that file.
|
||||
d. You may distribute the standard version of the Executable Files and Source Code or Derivative Work in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution.
|
||||
e. The Articles discussing the Work published in any form by the author may not be distributed or republished without the Author's consent. The author retains copyright to any such Articles. You may use the Executable Files and Source Code pursuant to this License but you may not repost or republish or otherwise distribute or make available the Articles, without the prior written consent of the Author.
|
||||
Any subroutines or modules supplied by You and linked into the Source Code or Executable Files of this Work shall not be considered part of this Work and will not be subject to the terms of this License.
|
||||
|
||||
4. Patent License. Subject to the terms and conditions of this License, each Author hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, import, and otherwise transfer the Work.
|
||||
|
||||
5. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
|
||||
a. You agree not to remove any of the original copyright, patent, trademark, and attribution notices and associated disclaimers that may appear in the Source Code or Executable Files.
|
||||
b. You agree not to advertise or in any way imply that this Work is a product of Your own.
|
||||
c. The name of the Author may not be used to endorse or promote products derived from the Work without the prior written consent of the Author.
|
||||
d. You agree not to sell, lease, or rent any part of the Work. This does not restrict you from including the Work or any part of the Work inside a larger software distribution that itself is being sold. The Work by itself, though, cannot be sold, leased or rented.
|
||||
e. You may distribute the Executable Files and Source Code only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy of the Executable Files or Source Code You distribute and ensure that anyone receiving such Executable Files and Source Code agrees that the terms of this License apply to such Executable Files and/or Source Code. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute the Executable Files or Source Code with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License.
|
||||
f. You agree not to use the Work for illegal, immoral or improper purposes, or on pages containing illegal, immoral or improper material. The Work is subject to applicable export laws. You agree to comply with all such laws and regulations that may apply to the Work after Your receipt of the Work.
|
||||
|
||||
6. Representations, Warranties and Disclaimer. THIS WORK IS PROVIDED "AS IS", "WHERE IS" AND "AS AVAILABLE", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OR CONDITIONS OR GUARANTEES. YOU, THE USER, ASSUME ALL RISK IN ITS USE, INCLUDING COPYRIGHT INFRINGEMENT, PATENT INFRINGEMENT, SUITABILITY, ETC. AUTHOR EXPRESSLY DISCLAIMS ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES OR CONDITIONS, INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF MERCHANTABILITY, MERCHANTABLE QUALITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY WARRANTY OF TITLE OR NON-INFRINGEMENT, OR THAT THE WORK (OR ANY PORTION THEREOF) IS CORRECT, USEFUL, BUG-FREE OR FREE OF VIRUSES. YOU MUST PASS THIS DISCLAIMER ON WHENEVER YOU DISTRIBUTE THE WORK OR DERIVATIVE WORKS.
|
||||
|
||||
7. Indemnity. You agree to defend, indemnify and hold harmless the Author and the Publisher from and against any claims, suits, losses, damages, liabilities, costs, and expenses (including reasonable legal or attorneys� fees) resulting from or relating to any use of the Work by You.
|
||||
|
||||
8. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL THE AUTHOR OR THE PUBLISHER BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK OR OTHERWISE, EVEN IF THE AUTHOR OR THE PUBLISHER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
9. Termination.
|
||||
a. This License and the rights granted hereunder will terminate automatically upon any breach by You of any term of this License. Individuals or entities who have received Derivative Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 6, 7, 8, 9, 10 and 11 will survive any termination of this License.
|
||||
b. If You bring a copyright, trademark, patent or any other infringement claim against any contributor over infringements You claim are made by the Work, your License from such contributor to the Work ends automatically.
|
||||
c. Subject to the above terms and conditions, this License is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, the Author reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
|
||||
|
||||
10. Publisher. The parties hereby confirm that the Publisher shall not, under any circumstances, be responsible for and shall not have any liability in respect of the subject matter of this License. The Publisher makes no warranty whatsoever in connection with the Work and shall not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. The Publisher reserves the right to cease making the Work available to You at any time without notice
|
||||
|
||||
11. Miscellaneous
|
||||
a. This License shall be governed by the laws of the location of the head office of the Author or if the Author is an individual, the laws of location of the principal place of residence of the Author.
|
||||
b. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this License, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
|
||||
c. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
|
||||
d. This License constitutes the entire agreement between the parties with respect to the Work licensed herein. There are no understandings, agreements or representations with respect to the Work not specified herein. The Author shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Author and You.
|
||||
@@ -0,0 +1,23 @@
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,62 @@
|
||||
==============================================================================
|
||||
LLVM Release License
|
||||
==============================================================================
|
||||
University of Illinois/NCSA
|
||||
Open Source License
|
||||
|
||||
Copyright (c) 2007-2015 University of Illinois at Urbana-Champaign.
|
||||
All rights reserved.
|
||||
|
||||
Developed by:
|
||||
|
||||
LLVM Team
|
||||
|
||||
University of Illinois at Urbana-Champaign
|
||||
|
||||
http://llvm.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal with
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimers.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimers in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the names of the LLVM Team, University of Illinois at
|
||||
Urbana-Champaign, nor the names of its contributors may be used to
|
||||
endorse or promote products derived from this Software without specific
|
||||
prior written permission.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
|
||||
SOFTWARE.
|
||||
|
||||
==============================================================================
|
||||
The LLVM software contains code written by third parties. Such software will
|
||||
have its own individual LICENSE.TXT file in the directory in which it appears.
|
||||
This file will describe the copyrights, license, and restrictions which apply
|
||||
to that code.
|
||||
|
||||
The disclaimer of warranty in the University of Illinois Open Source License
|
||||
applies to all code in the LLVM Distribution, and nothing in any of the
|
||||
other licenses gives permission to use the names of the LLVM Team or the
|
||||
University of Illinois to endorse or promote products derived from this
|
||||
Software.
|
||||
|
||||
The following pieces of software have additional or alternate copyrights,
|
||||
licenses, and/or restrictions:
|
||||
|
||||
Program Directory
|
||||
------- ---------
|
||||
<none yet>
|
||||
@@ -0,0 +1,373 @@
|
||||
Mozilla Public License Version 2.0
|
||||
==================================
|
||||
|
||||
1. Definitions
|
||||
--------------
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
--------------------------------
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
-------------------
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
---------------------------------------------------
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
--------------
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 6. Disclaimer of Warranty *
|
||||
* ------------------------- *
|
||||
* *
|
||||
* Covered Software is provided under this License on an "as is" *
|
||||
* basis, without warranty of any kind, either expressed, implied, or *
|
||||
* statutory, including, without limitation, warranties that the *
|
||||
* Covered Software is free of defects, merchantable, fit for a *
|
||||
* particular purpose or non-infringing. The entire risk as to the *
|
||||
* quality and performance of the Covered Software is with You. *
|
||||
* Should any Covered Software prove defective in any respect, You *
|
||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||
* essential part of this License. No use of any Covered Software is *
|
||||
* authorized under this License except under this disclaimer. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 7. Limitation of Liability *
|
||||
* -------------------------- *
|
||||
* *
|
||||
* Under no circumstances and under no legal theory, whether tort *
|
||||
* (including negligence), contract, or otherwise, shall any *
|
||||
* Contributor, or anyone who distributes Covered Software as *
|
||||
* permitted above, be liable to You for any direct, indirect, *
|
||||
* special, incidental, or consequential damages of any character *
|
||||
* including, without limitation, damages for lost profits, loss of *
|
||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||
* and all other commercial damages or losses, even if such party *
|
||||
* shall have been informed of the possibility of such damages. This *
|
||||
* limitation of liability shall not apply to liability for death or *
|
||||
* personal injury resulting from such party's negligence to the *
|
||||
* extent applicable law prohibits such limitation. Some *
|
||||
* jurisdictions do not allow the exclusion or limitation of *
|
||||
* incidental or consequential damages, so this exclusion and *
|
||||
* limitation may not apply to You. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
8. Litigation
|
||||
-------------
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
----------------
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
---------------------------
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
-------------------------------------------
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
---------------------------------------------------------
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
||||
@@ -0,0 +1,164 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
@@ -0,0 +1,21 @@
|
||||
www.sourceforge.net/projects/tinyxml
|
||||
Original code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinninglizard.com)
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any
|
||||
damages arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any
|
||||
purpose, including commercial applications, and to alter it and
|
||||
redistribute it freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must
|
||||
not claim that you wrote the original software. If you use this
|
||||
software in a product, an acknowledgment in the product documentation
|
||||
would be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and
|
||||
must not be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
@@ -1,17 +1,9 @@
|
||||
#!/bin/sh
|
||||
appname=`basename $0 | sed s,\.sh$,,`
|
||||
|
||||
dirname=`dirname $0`
|
||||
echo $dirname
|
||||
tmp="${dirname#?}"
|
||||
echo $tmp
|
||||
|
||||
if [ "${dirname%$tmp}" != "/" ]; then
|
||||
dirname=$PWD/$dirname
|
||||
echo $dirname
|
||||
if [ ! -d "${HOME}/.config/coati" ]; then
|
||||
# Control will enter here if $DIRECTORY doesn't exist.
|
||||
cp -r /usr/local/share/coati/.config/coati ${HOME}/.config/coati
|
||||
echo "First start of Coati from this user, copy default configfiles to ~/.config/coati"
|
||||
fi
|
||||
LD_LIBRARY_PATH=$dirname/lib
|
||||
export LD_LIBRARY_PATH
|
||||
echo $LD_LIBRARY_PATH
|
||||
|
||||
$dirname/$appname
|
||||
export LD_LIBRARY_PATH=/usr/local/share/coati/lib
|
||||
cd ~/.config/coati && exec /usr/local/share/coati/Coati
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
/usr/local/share/coati/Coati.sh
|
||||
@@ -3,9 +3,8 @@ Name=Coati
|
||||
GenericName=Coati
|
||||
X-GNOME-FullName=Coati
|
||||
Comment=Code Explorer
|
||||
Exec=/usr/share/coati/Coati.sh %u
|
||||
Exec=/usr/local/bin/coati
|
||||
Icon=coati
|
||||
Path=/usr/share/coati/
|
||||
Terminal=true
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
StartupNotify=true
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
mkdir -p setup/Linux/lib
|
||||
ldd bin/app/Release/Coati | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' setup/Linux/lib
|
||||
|
||||
# extra files needed and not copied with the lines above
|
||||
cp /usr/lib/qt/plugins/platforms/libqxcb.so setup/Linux
|
||||
cp /usr/lib/libQt5XcbQpa.so.5 setup/Linux/lib
|
||||
cp /usr/lib/libQt5DBus.so.5 setup/Linux/lib
|
||||
@@ -36,5 +36,7 @@
|
||||
<true/>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>icon</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.10</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -14,7 +14,7 @@ APP_NAME="@MACOSX_BINARY_NAME@"
|
||||
DYNLIB_PATHS=(@MACOSX_DYNAMIC_LIBRARIES@)
|
||||
|
||||
QT_DIR="@MACOSX_QT_DIR@"
|
||||
QT_FRAMEWORK_PATHS=(@MACOSX_QT_FRAMEWORKS@)
|
||||
QT_FRAMEWORK_PATHS=(/Users/ebsi/Documents/Qt/5.5/clang_64/lib/QtDBus.framework/Versions/5/QtDBus @MACOSX_QT_FRAMEWORKS@)
|
||||
|
||||
if [ ! -x "$APP_NAME" ]
|
||||
then
|
||||
@@ -86,7 +86,7 @@ do
|
||||
|
||||
FRAMEWORK_SUB_PATH=$(echo $FRAMEWORK_BIN_PATH | grep -o "\w*.framework\S*")
|
||||
install_name_tool -id @executable_path/../Frameworks/$FRAMEWORK_SUB_PATH $FRAMEWORK_DIR/$FRAMEWORK_SUB_PATH
|
||||
install_name_tool -change $FRAMEWORK_BIN_PATH @executable_path/../Frameworks/$FRAMEWORK_SUB_PATH $APP_PATH
|
||||
install_name_tool -change @rpath/$FRAMEWORK_SUB_PATH @executable_path/../Frameworks/$FRAMEWORK_SUB_PATH $APP_PATH
|
||||
|
||||
echo "framework" $FRAMEWORK_BIN_PATH $FRAMEWORK_PATH
|
||||
done
|
||||
@@ -94,23 +94,31 @@ done
|
||||
# http://qt-project.org/doc/qt-4.8/deployment-mac.html
|
||||
echo -e $INFO "Fixing framework dependencies"
|
||||
|
||||
install_name_tool -change $QT_DIR/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtGui.framework/Versions/5/QtGui
|
||||
install_name_tool -change $QT_DIR/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtWidgets.framework/Versions/5/QtWidgets
|
||||
install_name_tool -change $QT_DIR/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $FRAMEWORK_DIR/QtWidgets.framework/Versions/5/QtWidgets
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtGui.framework/Versions/5/QtGui
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtWidgets.framework/Versions/5/QtWidgets
|
||||
install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $FRAMEWORK_DIR/QtWidgets.framework/Versions/5/QtWidgets
|
||||
|
||||
install_name_tool -change $QT_DIR/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
install_name_tool -change $QT_DIR/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
install_name_tool -change $QT_DIR/lib/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
install_name_tool -change @rpath/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
|
||||
install_name_tool -change $QT_DIR/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change $QT_DIR/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change $QT_DIR/lib/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change $QT_DIR/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport @executable_path/../Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport @executable_path/../Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport $PLUGIN_DIR/libqcocoa.dylib
|
||||
install_name_tool -change @rpath/QtDBus.framework/Versions/5/QtDBus @executable_path/../Frameworks/QtDBus.framework/Versions/5/QtDBus $PLUGIN_DIR/libqcocoa.dylib
|
||||
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtDBus.framework/Versions/5/QtDBus
|
||||
|
||||
install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore $FRAMEWORK_DIR/QtNetwork.framework/Versions/5/QtNetwork
|
||||
install_name_tool -change @rpath/QtDBus.framework/Versions/5/QtDBus @executable_path/../Frameworks/QtDBus.framework/Versions/5/QtDBus $FRAMEWORK_DIR/QtNetwork.framework/Versions/5/QtNetwork
|
||||
|
||||
otool -L $FRAMEWORK_DIR/QtCore.framework/Versions/5/QtCore
|
||||
otool -L $FRAMEWORK_DIR/QtGui.framework/Versions/5/QtGui
|
||||
otool -L $FRAMEWORK_DIR/QtWidgets.framework/Versions/5/QtWidgets
|
||||
otool -L $FRAMEWORK_DIR/QtPrintSupport.framework/Versions/5/QtPrintSupport
|
||||
otool -L $FRAMEWORK_DIR/QtDBus.framework/Versions/5/QtDBus
|
||||
otool -L $FRAMEWORK_DIR/QtNetwork.framework/Versions/5/QtNetwork
|
||||
otool -L $PLUGIN_DIR/libqcocoa.dylib
|
||||
|
||||
|
||||
|
||||