git-svn-id: svn://db.shs.com.ru/libs@189 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -1,16 +1,22 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
project(libs)
|
||||
set(LIBPROJECT 1)
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/pip/")
|
||||
if(MINGW)
|
||||
find_package(MinGW REQUIRED)
|
||||
endif()
|
||||
set(LIB 1)
|
||||
set(LIBPROJECT 1)
|
||||
set(PULT 1)
|
||||
set(USB 1)
|
||||
set(ICU 1)
|
||||
set(CRYPT 1)
|
||||
set(FFTW 1)
|
||||
option(LIB "System install" 1)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
option(QGLVIEW "Build QGLview library and utils" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
||||
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
|
||||
endif ()
|
||||
|
||||
set(PIP_LIBRARY pip)
|
||||
set(PIP_FOLDERS "." "core" "containers" "thread" "system" "io" "console" "math" "code" "geo")
|
||||
set(PIP_INCLUDES)
|
||||
@@ -30,8 +36,6 @@ else ()
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif ()
|
||||
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
|
||||
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native")
|
||||
foreach(F ${PIP_FOLDERS})
|
||||
list(APPEND PIP_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/pip/src_main/${F}")
|
||||
endforeach(F)
|
||||
@@ -46,6 +50,9 @@ set(QAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/qad)
|
||||
add_subdirectory(pip)
|
||||
add_subdirectory(qad)
|
||||
set(_DIRS piqt piqt_utils cd_utils qcd_utils)
|
||||
if (QGLVIEW)
|
||||
list(APPEND _DIRS qglview)
|
||||
endif()
|
||||
foreach(_D ${_DIRS})
|
||||
include_directories(${_D})
|
||||
add_subdirectory(${_D})
|
||||
|
||||
@@ -2,17 +2,17 @@ project(cd_utils)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
if (NOT LIBPROJECT)
|
||||
find_package(PIP REQUIRED)
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif ()
|
||||
endif ()
|
||||
if (MINGW)
|
||||
find_package(MinGW REQUIRED)
|
||||
endif()
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${PIP_INCLUDES})
|
||||
option(LIB "System install" 1)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif ()
|
||||
#file(GLOB HDRS_UTILS "*.h")
|
||||
#file(GLOB CPPS_UTILS "*.cpp")
|
||||
set(CPPS_UTILS "cdutils_core.cpp" "cdutils_types.cpp" "cdutils_parser.cpp" "cdutils_k.cpp")
|
||||
@@ -27,7 +27,28 @@ target_link_libraries(${PROJECT_NAME} ${PIP_LIBRARY})
|
||||
add_executable(cdutilstest "cdutilstest.cpp" "cdtest.h")
|
||||
target_link_libraries(cdutilstest ${PIP_LIBRARY} ${PROJECT_NAME})
|
||||
|
||||
if (LIB)
|
||||
if (LIBPROJECT)
|
||||
include(SDKMacros)
|
||||
sdk_install("" "${PROJECT_NAME}" "${HDRS_UTILS}")
|
||||
else()
|
||||
if(LIB)
|
||||
if(WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX ${MINGW_DIR})
|
||||
install(FILES ${HDRS_UTILS} DESTINATION ${MINGW_INCLUDE})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
else()
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
endif()
|
||||
install(FILES ${HDRS_UTILS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
endif()
|
||||
message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
else()
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
@@ -2,6 +2,13 @@ project(piqt)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
if(NOT LIBPROJECT)
|
||||
find_package(PIP REQUIRED)
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
||||
if(DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif()
|
||||
include(QtProject)
|
||||
endif()
|
||||
find_package(QAD REQUIRED)
|
||||
include_directories(${PIP_INCLUDES} ${QAD_INCLUDES})
|
||||
@@ -9,5 +16,28 @@ set(LIBS ${PIP_LIBRARY} ${QAD_UTILS_LIBRARY})
|
||||
qt_project(${PROJECT_NAME} "LIB" "${LIBS}" H CPP)
|
||||
if(LIBPROJECT)
|
||||
include(SDKMacros)
|
||||
sdk_install("" "${PROJECT_NAME}" "${H}")
|
||||
sdk_install("pip" "${PROJECT_NAME}" "${H}")
|
||||
else()
|
||||
if(LIB)
|
||||
if(WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX ${MINGW_DIR})
|
||||
install(FILES ${H} DESTINATION ${MINGW_INCLUDE}/pip)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${QTDIR})
|
||||
else()
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
endif()
|
||||
install(FILES ${H} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/pip)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
endif()
|
||||
message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
else()
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
project(piqt_utils)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
if(MINGW)
|
||||
find_package(MinGW REQUIRED)
|
||||
endif()
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall")
|
||||
if(DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif()
|
||||
if(LIBPROJECT)
|
||||
include(PIPMacros)
|
||||
include(SDKMacros)
|
||||
else()
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
||||
if(DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif()
|
||||
find_package(PIP REQUIRED)
|
||||
endif()
|
||||
find_package(QAD REQUIRED)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QT_INCLUDES} ${PIP_INCLUDES} ${QAD_INCLUDES})
|
||||
pip_code_model(CCM "../pip/src_main/io/piiodevice.h" "../pip/src_main/io/pipacketextractor.h" OPTIONS "-DPIP_EXPORT" "-Es")
|
||||
set(LIBS ${QAD_WIDGETS_LIBRARY} ${QAD_UTILS_LIBRARY} ${QAD_BLOCKVIEW_LIBRARY} ${PIP_LIBRARY})
|
||||
@@ -32,9 +30,11 @@ else()
|
||||
add_library(${PROJECT_NAME} SHARED ${CPPS_UTILS} ${CMOCS_UTILS} ${CUIS_UTILS} ${CCM})
|
||||
endif()
|
||||
target_link_libraries(${PROJECT_NAME} ${LIBS})
|
||||
|
||||
if (LIBPROJECT)
|
||||
add_dependencies(piqt_utils pip_cmg)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED ENV{QNX_HOST})
|
||||
set(CPPS "pidumper.cpp" "pidumper_main.cpp")
|
||||
set(MOCS "pidumper.h")
|
||||
@@ -59,31 +59,38 @@ if (NOT DEFINED ENV{QNX_HOST})
|
||||
add_executable(piconnectionedit "piconnedit_main.cpp" ${RESS})
|
||||
target_link_libraries(piconnectionedit ${LIBS} ${PROJECT_NAME})
|
||||
endif()
|
||||
set(_TARGETS ${PROJECT_NAME} pidumper piconnectionedit)
|
||||
sdk_install("" "${TARGETS}" "${HDRS_UTILS}")
|
||||
#if(LIB)
|
||||
# if(WIN32)
|
||||
# set(CMAKE_INSTALL_PREFIX ${MINGW_DIR})
|
||||
# install(FILES ${HDRS_UTILS} DESTINATION ${MINGW_INCLUDE})
|
||||
# install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB})
|
||||
# install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
# get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
# install(TARGETS ${PROJECT_NAME} DESTINATION ${QTDIR})
|
||||
# else()
|
||||
# if(APPLE)
|
||||
# set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
# else()
|
||||
# set(CMAKE_INSTALL_PREFIX /usr)
|
||||
# endif()
|
||||
# install(FILES ${HDRS_UTILS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
|
||||
# install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
# endif()
|
||||
# message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
#else()
|
||||
# install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
# message(STATUS "Install to local \"bin\"")
|
||||
#endif()
|
||||
#if(NOT DEFINED ENV{QNX_HOST})
|
||||
# install(TARGETS pidumper DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
|
||||
# install(TARGETS piconnectionedit DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
|
||||
#endif()
|
||||
|
||||
if (NOT DEFINED ENV{QNX_HOST})
|
||||
set(_TARGETS pidumper piconnectionedit)
|
||||
endif()
|
||||
|
||||
if (LIBPROJECT)
|
||||
sdk_install("pip" "${PROJECT_NAME}" "${HDRS_UTILS}")
|
||||
else()
|
||||
if(LIB)
|
||||
if(WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX ${MINGW_DIR})
|
||||
install(FILES ${HDRS_UTILS} DESTINATION ${MINGW_INCLUDE}/pip)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
install(TARGETS ${_TARGETS} DESTINATION ${MINGW_BIN})
|
||||
get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${QTDIR})
|
||||
else()
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
install(TARGETS ${_TARGETS} DESTINATION /usr/local/bin)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
install(TARGETS ${_TARGETS} DESTINATION /usr/bin)
|
||||
endif()
|
||||
install(FILES ${HDRS_UTILS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/pip)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
endif()
|
||||
message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
else()
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
install(TARGETS ${_TARGETS} DESTINATION bin)
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -1,18 +1,23 @@
|
||||
project(qad)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
include(../SDKMacros.cmake)
|
||||
include(../QtProject.cmake)
|
||||
if (LIBPROJECT)
|
||||
include(../SDKMacros.cmake)
|
||||
include(../QtProject.cmake)
|
||||
else()
|
||||
include(QtProject)
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif ()
|
||||
endif()
|
||||
find_package(OpenGL REQUIRED)
|
||||
if (MINGW)
|
||||
find_package(MinGW REQUIRED)
|
||||
endif()
|
||||
#include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QT_INCLUDES})
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif ()
|
||||
|
||||
#set(LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTOPENGL_LIBRARY} ${OPENGL_LIBRARIES} qad_widgets qad_utils)
|
||||
if (NOT LIBPROJECT)
|
||||
if (LIB)
|
||||
@@ -34,7 +39,29 @@ set(CMAKES "FindQAD.cmake")
|
||||
install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules)
|
||||
|
||||
macro(qad_install _TARGET _H_FILES)
|
||||
sdk_install(qad "${_TARGET}" "${_H_FILES}")
|
||||
if (LIBPROJECT)
|
||||
sdk_install("qad" "${_TARGET}" "${_H_FILES}")
|
||||
else()
|
||||
if (LIB)
|
||||
if (WIN32)
|
||||
if (NOT _H_FILES STREQUAL "")
|
||||
#message("HFILES ${_H_FILES}")
|
||||
install(FILES ${_H_FILES} DESTINATION ${MINGW_INCLUDE}/qad)
|
||||
endif()
|
||||
install(TARGETS ${_TARGET} DESTINATION ${MINGW_LIB})
|
||||
install(TARGETS ${_TARGET} DESTINATION ${MINGW_BIN})
|
||||
get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
install(TARGETS ${_TARGET} DESTINATION ${QTDIR})
|
||||
else ()
|
||||
if (NOT _H_FILES STREQUAL "")
|
||||
install(FILES ${_H_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/qad)
|
||||
endif()
|
||||
install(TARGETS ${_TARGET} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
endif ()
|
||||
else ()
|
||||
install(TARGETS ${_TARGET} DESTINATION bin)
|
||||
endif ()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(qad_plugin NAME _LIBS)
|
||||
|
||||
@@ -2,14 +2,42 @@ project(qcd_utils)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
if (NOT LIBPROJECT)
|
||||
find_package(PIP REQUIRED)
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif ()
|
||||
endif()
|
||||
find_package(QAD REQUIRED)
|
||||
include_directories(${PIP_INCLUDES} ${QAD_INCLUDES})
|
||||
set(LIBS ${PIP_LIBRARY} ${QAD_UTILS_LIBRARY} ${QAD_WIDGETS_LIBRARY} cd_utils piqt)
|
||||
qt_project(${PROJECT_NAME} "LIB" "${LIBS}" H CPP)
|
||||
sdk_install("" ${PROJECT_NAME} "${H}")
|
||||
if (NOT DEFINED ENV{QNX_HOST})
|
||||
if (PULT)
|
||||
add_subdirectory(pult)
|
||||
endif ()
|
||||
endif ()
|
||||
add_subdirectory(pult)
|
||||
if (LIBPROJECT)
|
||||
sdk_install("" ${PROJECT_NAME} "${H}")
|
||||
else()
|
||||
if(LIB)
|
||||
if(WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX ${MINGW_DIR})
|
||||
install(FILES ${H} DESTINATION ${MINGW_INCLUDE}/pip)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${QTDIR})
|
||||
else()
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
endif()
|
||||
install(FILES ${H} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/pip)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
endif()
|
||||
message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
else()
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,8 +1,22 @@
|
||||
if (NOT LIBPROJECT)
|
||||
find_package(PIP REQUIRED)
|
||||
endif ()
|
||||
if (MINGW)
|
||||
find_package(MinGW REQUIRED)
|
||||
endif()
|
||||
set(LIBS ${QAD_GRAPHIC_LIBRARY} ${QAD_UTILS_LIBRARY} ${QAD_WIDGETS_LIBRARY} qcd_utils)
|
||||
qt_project(cd_pult "EXE" "${LIBS}" H CPP)
|
||||
|
||||
if(LIB)
|
||||
if(WIN32)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
else()
|
||||
if(APPLE)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION /usr/local/bin)
|
||||
else()
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin)
|
||||
endif()
|
||||
endif()
|
||||
message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
else()
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif()
|
||||
|
||||
|
||||
@@ -6,14 +6,139 @@
|
||||
#include "cdutils_core.h"
|
||||
#include "qcd_core.h"
|
||||
#include "qcd_kmodel.h"
|
||||
#include "pifile.h"
|
||||
|
||||
|
||||
using namespace CDUtils;
|
||||
|
||||
PIStringList takeMembers(PIString &in) {
|
||||
int slen = in.length();
|
||||
int st = -1, bcnt = 0;
|
||||
PIChar cc;
|
||||
PIStringList ret;
|
||||
int rst = -1;
|
||||
for (int i = 0; i < slen; i++) {
|
||||
cc = in.at(i);
|
||||
if (cc == '{') {
|
||||
if (bcnt == 0) st = i;
|
||||
bcnt++;
|
||||
}
|
||||
if (cc == '}' && st >= 0) {
|
||||
bcnt--;
|
||||
if (bcnt == 0) {
|
||||
in.remove(st, i-st);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
if (cc == ';' && bcnt == 1) {
|
||||
if (rst < 0) rst = st;
|
||||
ret << in.mid(rst+1, i-rst-1);
|
||||
rst = i;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void parseStruct(PIString &in, CDSection * root, const PIStringList &c_types, PIVector<CDSection> §ions, PIVector<CDType> &enums);
|
||||
|
||||
|
||||
void parseEnum(PIString &in, CDSection * root, const PIStringList &c_types, PIVector<CDSection> §ions, PIVector<CDType> &enums) {
|
||||
PIString n = in.takeCWord();
|
||||
//piCout << n;
|
||||
PIVariantTypes::Enum e;
|
||||
e.enum_name = n;
|
||||
PIString ev = in.inBrackets('{', '}');
|
||||
e << ev.split(",");
|
||||
if (root) {
|
||||
CDType & cdt((*root)[root->count(false)]);
|
||||
cdt = CDType(cdt.index(), n, "e", "", "", "", CDType::cdK);
|
||||
cdt.setEnumValues(e);
|
||||
enums << cdt;
|
||||
} else {
|
||||
enums << CDType(0, n, "e", "", "", "", CDType::cdK);
|
||||
enums.back().setEnumValues(e);
|
||||
}
|
||||
in.removeAll("{"+in+"}");
|
||||
}
|
||||
|
||||
|
||||
void parseMember(PIString &in, CDSection * root, const PIStringList &c_types, PIVector<CDSection> §ions, PIVector<CDType> &enums) {
|
||||
PIString t = in.takeCWord();
|
||||
if (t == "struct") {
|
||||
parseStruct(in, root, c_types, sections, enums);
|
||||
}
|
||||
if (t == "enum") {
|
||||
parseEnum(in, root, c_types, sections, enums);
|
||||
}
|
||||
if (root) {
|
||||
if (c_types.contains(t) && root) {
|
||||
PIString tt = "s";
|
||||
if (t == "bool") tt = "b";
|
||||
if (t == "int") tt = "n";
|
||||
if (t == "double") tt = "f";
|
||||
CDType & cdt((*root)[root->count(false)]);
|
||||
cdt = CDType(cdt.index(), in.takeCWord(), tt, "", "", "", CDType::cdK);
|
||||
}
|
||||
piForeach(CDSection cd, sections) {
|
||||
if (t == cd.name) {
|
||||
cd.alias = in.takeCWord();
|
||||
root->section(root->sectionsCount()) = cd;
|
||||
}
|
||||
}
|
||||
piForeach(CDType en, enums) {
|
||||
if (t == en.name()) {
|
||||
in.takeCWord();
|
||||
(*root)[root->count(false)] = en;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void parseStruct(PIString &in, CDSection * root, const PIStringList &c_types, PIVector<CDSection> §ions, PIVector<CDType> &enums) {
|
||||
PIString t = in.takeCWord();
|
||||
CDSection * c;
|
||||
if (root) c = &(root->section(root->sectionsCount()));
|
||||
else c = new CDSection();
|
||||
c->name = t;
|
||||
c->alias = t;
|
||||
PIStringList members = takeMembers(in);
|
||||
//piCout << members;
|
||||
piForeach(PIString &s, members) {
|
||||
if (s.trim().isEmpty()) continue;
|
||||
parseMember(s, c, c_types, sections, enums);
|
||||
}
|
||||
sections << *c;
|
||||
}
|
||||
|
||||
|
||||
Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) {
|
||||
//CDCore::instance()->initPult();
|
||||
ui->setupUi(this);
|
||||
ui->treeView->setKFile("");
|
||||
|
||||
PIFile f;
|
||||
piCout << f.open("test.kh", PIIODevice::ReadOnly);
|
||||
PIStringList c_types;
|
||||
c_types << "bool" << "int" << "double" << "string" << "PIString";
|
||||
PIString in;
|
||||
while (!f.isEnd()) {
|
||||
PIStringList s = f.readLine().trim().split("//");
|
||||
if (!s.isEmpty())
|
||||
in += s[0];
|
||||
}
|
||||
PIVector<CDSection> sections;
|
||||
PIVector<CDType> enums;
|
||||
int i=0;
|
||||
while (!in.isEmpty() && i<100) {
|
||||
if (!in[0].isAlpha()) in.takeSymbol();
|
||||
parseMember(in, 0, c_types, sections, enums);
|
||||
i++;
|
||||
}
|
||||
piForeach(CDSection cd, sections) {
|
||||
if (cd.name == "K") K.root() = cd;
|
||||
}
|
||||
|
||||
ui->treeView->refresh();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
project(qglview)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
find_package(Qt4 REQUIRED)
|
||||
find_package(OpenGL REQUIRED)
|
||||
if (IBPROJECT)
|
||||
include(SDKMacros)
|
||||
else()
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif ()
|
||||
endif ()
|
||||
if (MINGW)
|
||||
find_package(MinGW REQUIRED)
|
||||
endif()
|
||||
find_package(Qt4 REQUIRED)
|
||||
find_package(OpenGL REQUIRED)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QT_INCLUDES})
|
||||
option(LIB "System install" 0)
|
||||
option(DEBUG "Build with -g3" 0)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall")
|
||||
if (DEBUG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
endif ()
|
||||
set(LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTOPENGL_LIBRARY} ${QT_QTXML_LIBRARY} ${OPENGL_LIBRARIES} qad_widgets qad_utils)
|
||||
file(GLOB MOCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h")
|
||||
file(GLOB CPPS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp")
|
||||
@@ -25,28 +29,34 @@ qt4_wrap_ui(CUIS ${UIS})
|
||||
qt4_add_resources(CRES ${RES})
|
||||
add_library(${PROJECT_NAME} SHARED ${CPPS} ${CMOCS} ${CUIS} ${CRES} ${MOCS})
|
||||
target_link_libraries(${PROJECT_NAME} ${LIBS})
|
||||
if (LIB)
|
||||
if (WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX ${MINGW_DIR})
|
||||
install(FILES ${MOCS} DESTINATION ${MINGW_INCLUDE})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${QTDIR})
|
||||
|
||||
if (LIBPROJECT)
|
||||
sdk_install("qglview" "${PROJECT_NAME}" "${MOCS}")
|
||||
else()
|
||||
if (LIB)
|
||||
if (WIN32)
|
||||
set(CMAKE_INSTALL_PREFIX ${MINGW_DIR})
|
||||
install(FILES ${MOCS} DESTINATION ${MINGW_INCLUDE}/qglview)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB})
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN})
|
||||
get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${QTDIR})
|
||||
else ()
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
endif()
|
||||
install(FILES ${MOCS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/qglview)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
endif ()
|
||||
message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
else ()
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
endif()
|
||||
install(FILES ${MOCS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif ()
|
||||
message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"")
|
||||
else ()
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
message(STATUS "Install to local \"bin\"")
|
||||
endif ()
|
||||
|
||||
qt4_wrap_cpp(CMOCS_TEST "qglview_window.h" OPTIONS -nw)
|
||||
qt4_wrap_ui(CUIS_TEST "qglview_window.ui")
|
||||
add_executable(qglview_test "main.cpp" "qglview_window.cpp" ${CMOCS_TEST} ${CUIS_TEST} ${CRES})
|
||||
|
||||
Reference in New Issue
Block a user