Index: cmake/modules/OCIVersion.c
===================================================================
--- cmake/modules/OCIVersion.c	(revision 0)
+++ cmake/modules/OCIVersion.c	(revision 0)
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <oci.h>
+
+int main()
+{
+/*   signed int major_version, minor_version, update_num, patch_num, port_update_num;   */
+/*   /\*signed int res =*\/ OCIClientVersion (  &major_version, */
+/* 					   &minor_version, */
+/* 					   &update_num, */
+/* 					   &patch_num, */
+/* 					   &port_update_num ); */
+  
+/*   printf("%d.%d.%d.%d.%d\n", */
+/* 	 major_version, minor_version, update_num, patch_num, port_update_num); */
+
+/*  printf("%dR%d\n",  OCI_MAJOR_VERSION, OCI_MINOR_VERSION); */
+  return OCI_MAJOR_VERSION * 10 + OCI_MINOR_VERSION;
+}
Index: cmake/modules/FindOracle.cmake
===================================================================
--- cmake/modules/FindOracle.cmake	(revision 0)
+++ cmake/modules/FindOracle.cmake	(revision 0)
@@ -0,0 +1,209 @@
+# TOra: Configure Oracle libraries
+#
+# ORACLE_FOUND - system has Oracle OCI
+# ORACLE_HAS_XML - Oracle has XDK support(thick client installed)
+# ORACLE_INCLUDES - where to find oci.h
+# ORACLE_LIBRARIES - the libraries to link against to use Oracle OCI
+#
+# Components: CLNTSH, OCCI, XML, OCIEI
+# CLNTSH is enabled by default
+# for example: FIND_PACKAGE(Oracle REQUIRED CLNTSH OCCI)
+# 
+# copyright (c) 2007 Petr Vanek <petr@scribus.info>
+# copyright (c) 2009 Ivan Brezina <ibre5041@ibrezina.net>
+# Redistribution and use is allowed according to the terms of the GPLv2 license.
+#
+
+SET(ORACLE_FOUND "NO")
+SET(ORACLE_HAS_XML "NO")
+SET(ORACLE_HOME $ENV{ORACLE_HOME})
+
+# "components" handling. It enables to find various independent libraries,
+IF( Oracle_FIND_COMPONENTS )
+  FOREACH( component ${Oracle_FIND_COMPONENTS} )
+    STRING( TOUPPER ${component} _COMPONENT )
+    SET( ORACLE_USE_${_COMPONENT} 1 )
+  ENDFOREACH( component )
+
+  # legacy behaviour
+  IF (NOT ORACLE_USE_CLNTSH)
+    SET(ORACLE_USE_CLNTSH 1)
+  ENDIF (NOT ORACLE_USE_CLNTSH)
+
+  # it looks like it's mandatory on macosx
+  IF (APPLE)
+    SET(ORACLE_USE_OCIEI 1)
+  ENDIF (APPLE)
+
+ENDIF( Oracle_FIND_COMPONENTS )
+
+
+IF (ORACLE_PATH_INCLUDES)
+  SET (ORACLE_INCLUDES_LOCATION ${ORACLE_PATH_INCLUDES})
+ELSE (ORACLE_PATH_INCLUDES)
+    SET (ORACLE_INCLUDES_LOCATION
+            ${ORACLE_HOME}/rdbms/public
+            ${ORACLE_HOME}/include
+            # xdk
+            ${ORACLE_HOME}/xdk/include
+            # sdk
+            ${ORACLE_HOME}/sdk/include
+            # xe on windows
+            ${ORACLE_HOME}/OCI/include
+       )
+ENDIF (ORACLE_PATH_INCLUDES)
+
+IF (ORACLE_PATH_LIB)
+    SET (ORACLE_LIB_LOCATION ${ORACLE_PATH_LIB})
+ELSE (ORACLE_PATH_LIB)
+    SET (ORACLE_LIB_LOCATION
+            # TODO add 32/64bit version here (lib32/lib64 on some platforms)
+            ${ORACLE_HOME}/lib 
+            # xe on windows
+            ${ORACLE_HOME}/OCI/lib/MSVC
+            ${ORACLE_HOME}
+        )
+ENDIF (ORACLE_PATH_LIB)
+
+FIND_PATH(
+    ORACLE_INCLUDES
+    oci.h
+    ${ORACLE_INCLUDES_LOCATION}
+    NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
+)
+
+SET(FORCE_ERROR 0)
+
+IF (ORACLE_USE_CLNTSH)
+    FIND_LIBRARY(
+        ORACLE_LIBRARY_CLNTSH
+        NAMES libclntsh clntsh oci
+        PATHS ${ORACLE_LIB_LOCATION}
+        NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
+    )
+    IF (NOT ORACLE_LIBRARY_CLNTSH AND Oracle_FIND_REQUIRED)
+        SET(FORCE_ERROR "CLNTSH")
+    ENDIF (NOT ORACLE_LIBRARY_CLNTSH AND Oracle_FIND_REQUIRED)
+ENDIF (ORACLE_USE_CLNTSH)
+
+
+IF (ORACLE_USE_OCCI)
+    FIND_LIBRARY(
+        ORACLE_LIBRARY_OCCI
+        NAMES libocci occi 
+        PATHS ${ORACLE_LIB_LOCATION}
+        NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
+    )
+    IF (NOT ORACLE_LIBRARY_OCCI AND Oracle_FIND_REQUIRED)
+        SET(FORCE_ERROR "OCCI")
+    ENDIF (NOT ORACLE_LIBRARY_OCCI AND Oracle_FIND_REQUIRED)
+ENDIF (ORACLE_USE_OCCI)
+
+IF (ORACLE_USE_XML)
+    FIND_PATH(
+        ORACLE_INCLUDES_XML
+        xml.h
+        ${ORACLE_INCLUDES_LOCATION}
+        NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
+    )
+    IF (NOT ORACLE_INCLUDES_XML AND Oracle_FIND_REQUIRED)
+        SET(FORCE_ERROR "XML")
+    ENDIF (NOT ORACLE_INCLUDES_XML AND Oracle_FIND_REQUIRED)
+
+    FIND_LIBRARY(
+        ORACLE_LIBRARY_XML
+        NAMES libxml xml libxml10 xml10 libxml11 xml11 oraxml10 oraxml11
+        PATHS ${ORACLE_LIB_LOCATION}
+        NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
+    )
+    IF (NOT ORACLE_LIBRARY_XML AND Oracle_FIND_REQUIRED)
+        SET(FORCE_ERROR "XML")
+    ENDIF (NOT ORACLE_LIBRARY_XML AND Oracle_FIND_REQUIRED)
+ENDIF (ORACLE_USE_XML)
+
+IF (ORACLE_USE_OCIEI)
+    FIND_LIBRARY(ORACLE_LIBRARY_OCIEI
+        NAMES libociei ociei
+        PATHS ${ORACLE_LIB_LOCATION}
+        NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH
+    )
+    IF (NOT ORACLE_LIBRARY_OCIEI AND Oracle_FIND_REQUIRED)
+        SET(FORCE_ERROR "OCIEI")
+    ENDIF (NOT ORACLE_LIBRARY_OCIEI AND Oracle_FIND_REQUIRED)
+ENDIF (ORACLE_USE_OCIEI)
+
+MESSAGE("fer ${FORCE_ERROR}")
+IF (NOT FORCE_ERROR)
+    SET (ORACLE_LIBRARY ${ORACLE_LIBRARY_CLNTSH} ${ORACLE_LIBRARY_OCCI} ${ORACLE_LIBRARY_XML} ${ORACLE_LIBRARY_OCIEI})
+ENDIF (NOT FORCE_ERROR)
+
+
+IF (ORACLE_INCLUDES AND ORACLE_LIBRARY)
+    SET(ORACLE_LIBRARIES ${ORACLE_LIBRARY})
+    SET(ORACLE_FOUND "YES")
+ENDIF (ORACLE_INCLUDES AND ORACLE_LIBRARY)
+
+IF (ORACLE_INCLUDES_XML AND ORACLE_LIBRARY_XML)
+    ADD_DEFINITIONS(-DORACLE_HAS_XML)
+    SET(ORACLE_HAS_XML "YES")
+    LIST(APPEND ORACLE_INCLUDES ${ORACLE_INCLUDES_XML})
+ENDIF (ORACLE_INCLUDES_XML AND ORACLE_LIBRARY_XML)
+  
+# guess OCI version
+IF (NOT DEFINED ORACLE_OCI_VERSION AND ORACLE_INCLUDES)
+  TRY_RUN(OCIVER_TYPE OCIVER_COMPILED
+    ${CMAKE_BINARY_DIR}
+    ${CMAKE_SOURCE_DIR}/cmake/modules/OCIVersion.c
+    CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${ORACLE_INCLUDES}"
+    OUTPUT_VARIABLE OCIVER)
+
+  IF (${OCIVER_TYPE} GREATER "110")
+    SET(ORACLE_OCI_VERSION "11G")
+  ELSEIF (${OCIVER_TYPE} EQUAL "102")
+    SET(ORACLE_OCI_VERSION "10G_R2")
+  ELSEIF (${OCIVER_TYPE} EQUAL "101")
+    SET(ORACLE_OCI_VERSION "10G")
+  ELSEIF (${OCIVER_TYPE} EQUAL "91")
+    SET(ORACLE_OCI_VERSION "9")
+  ELSEIF (${OCIVER_TYPE} EQUAL "92")
+    SET(ORACLE_OCI_VERSION "9")
+  ELSEIF (NOT ${OCIVER_TYPE} GREATER "90")
+    SET(ORACLE_OCI_VERSION "8I")
+  ELSE (${OCIVER_TYPE} GREATER "110")
+    SET(ORACLE_OCI_VERSION "10G_R2")
+  ENDIF (${OCIVER_TYPE} GREATER "110")
+  
+  MESSAGE(STATUS "Guessed ORACLE_OCI_VERSION value: ${ORACLE_OCI_VERSION} for ${OCIVER_TYPE}")
+ENDIF (NOT DEFINED ORACLE_OCI_VERSION AND ORACLE_INCLUDES)
+
+MESSAGE(STATUS "Found Oracle: ${ORACLE_LIBRARY} (ORACLE_HOME='${ORACLE_HOME}')")
+MESSAGE(STATUS "    includes: ${ORACLE_INCLUDES}")
+MESSAGE(STATUS "Found XML Oracle: ${ORACLE_INCLUDES_XML} ${ORACLE_LIBRARY_XML}")
+
+IF (ORACLE_FOUND)
+    # there *must* be OCI version defined for internal libraries
+    IF (ORACLE_OCI_VERSION)
+        ADD_DEFINITIONS(-DOTL_ORA${ORACLE_OCI_VERSION})
+    ELSE (ORACLE_OCI_VERSION)
+        MESSAGE(FATAL_ERROR "Set -DORACLE_OCI_VERSION for your oci. [8, 8I, 9I, 10G, 10G_R2]")
+    ENDIF (ORACLE_OCI_VERSION)
+
+ELSE (ORACLE_FOUND)
+
+    MESSAGE(STATUS "Oracle not found.")
+    MESSAGE(STATUS "Oracle: You can specify includes: -DORACLE_PATH_INCLUDES=/usr/include/oracle/10.2.0.3/client")
+    MESSAGE(STATUS "   currently found includes: ${ORACLE_INCLUDES}")
+    MESSAGE(STATUS "Oracle: You can specify libs: -DORACLE_PATH_LIB=/usr/lib/oracle/10.2.0.3/client/lib")
+    MESSAGE(STATUS "   currently found libs: ${ORACLE_LIBRARY}")
+
+    IF (FORCE_ERROR)
+        MESSAGE(STATUS "Failed module info: ${FORCE_ERROR}")
+    ENDIF (FORCE_ERROR)
+    IF (Oracle_FIND_REQUIRED)
+        MESSAGE(FATAL_ERROR "Could not find Oracle library")
+    ELSE (Oracle_FIND_REQUIRED)
+        # setup the variables for silent continue
+        SET (ORACLE_INCLUDES "")
+    ENDIF (Oracle_FIND_REQUIRED)
+
+ENDIF (ORACLE_FOUND)
Index: oraload/CMakeLists.txt
===================================================================
--- oraload/CMakeLists.txt	(revision 76)
+++ oraload/CMakeLists.txt	(working copy)
@@ -1,29 +1,14 @@
-set(DESIRED_QT_VERSION 4.5)
-find_package(Qt4 REQUIRED)
 include(${QT_USE_FILE})
-include_directories(${CMAKE_SOURCE_DIR}/lib)
-include_directories(${CMAKE_SOURCE_DIR}/lobwizard)
-include_directories(${ORACLE_HOME}/rdbms/public)
-include_directories(${ORACLE_HOME}/sdk/include)
-# InstantClient 11 Linux
-find_file(NNZ10 libnnz11.so ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-find_file(OCCI libocci.so.11.1 ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-find_file(CLNTSH libclntsh.so.11.1 ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-# InstantClient 10 Linux
-#find_file(NNZ10 libnnz10.so ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-#find_file(OCCI libocci.so.10.1 ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-#find_file(CLNTSH libclntsh.so.10.1 ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-# InstantClient 11 Mac
-#find_file(NNZ10 libnnz10.dylib ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-#find_file(OCCI libocci.dylib.10.1 ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-#find_file(CLNTSH libclntsh.dylib.10.1 ${ORACLE_HOME} ${ORACLE_HOME}/lib)
-set(libnnz ${NNZ10})
-set(libocci ${OCCI})
-set(libclntsh ${CLNTSH})
+
+include_directories( ${ORACLE_INCLUDES} )
+include_directories( ${CMAKE_SOURCE_DIR}/lib )
+include_directories( ${CMAKE_SOURCE_DIR}/lobwizard )
+include_directories(${CMAKE_BINARY_DIR}/lobwizard)
+
 set(AppSrcs main.cpp)
-cmake_policy(SET CMP0003 NEW)
-link_directories(${CMAKE_SOURCE_DIR}/lib ${CMAKE_SOURCE_DIR}/lobwizard)
+
+link_directories(${CMAKE_BINARY_DIR}/lib ${CMAKE_BINARY_DIR}/lobwizard)
 add_executable(oraload ${AppSrcs})
-target_link_libraries(oraload loadutil lobwizard ${libnnz} ${libocci} ${libclntsh})
+target_link_libraries(oraload loadutil lobwizard ${ORACLE_LIBRARIES})
 
 install(TARGETS oraload DESTINATION bin)
Index: lib/CMakeLists.txt
===================================================================
--- lib/CMakeLists.txt	(revision 76)
+++ lib/CMakeLists.txt	(working copy)
@@ -1,11 +1,9 @@
 set(LibSrcs BasicDML.cpp BinLob.cpp Connection.cpp CharLob.cpp Lob.cpp Log.cpp)
-include_directories(${CMAKE_SOURCE_DIR}/lib)
-include_directories(${ORACLE_HOME}/rdbms/public)
-include_directories(${ORACLE_HOME}/sdk/include)
-include_directories(${ORACLE_HOME}/rdbms/public)
-#add_library(loadutil SHARED ${LibSrcs})
+
+include_directories( ${ORACLE_INCLUDES} )
+
 add_library(loadutil  ${LibSrcs})
 
-target_link_libraries(loadutil ${libnnz} ${libocci} ${libclntsh})
+target_link_libraries(loadutil ${ORACLE_LIBRARIES} )
 
 install(TARGETS loadutil DESTINATION lib)
Index: lobwizard/CMakeLists.txt
===================================================================
--- lobwizard/CMakeLists.txt	(revision 76)
+++ lobwizard/CMakeLists.txt	(working copy)
@@ -1,24 +1,21 @@
-# Qt 4.5 is required, make sure that at least 4.5 is installed
-# via "qmake -v".
-# find_package(Qt4) looks for qmake in the system path
-find_package(Qt4 REQUIRED)
 include_directories(${CMAKE_SOURCE_DIR}/lib)
-include_directories(${ORACLE_HOME}/rdbms/public)
-include_directories(${ORACLE_HOME}/sdk/include)
-include_directories(${ORACLE_HOME}/rdbms/public)
+include_directories(${CMAKE_SOURCE_DIR}/lobwizard)
+include_directories(${CMAKE_BINARY_DIR}/lobwizard)
+include_directories(${ORACLE_INCLUDES})
+
 include(${QT_USE_FILE})
 set(LobSrcs LobWizard.cpp)
 set(LobMocSrcs LobWizard.h)
 set(LobUis LobWizard.ui)
-set(LobUis_H ui_LobWizard.h)
+# set(LobUis_H ui_LobWizard.h)
 
 qt4_wrap_cpp(LobMoc ${LobMocSrcs})
 qt4_wrap_ui(LobUi ${LobUis})
-qt4_wrap_cpp(LobMocUi ${LobUis_H})
+# qt4_wrap_cpp(LobMocUi ${LobUis_H})
 
 add_definitions(-DQT_NO_DEBUG -FLAT_NAMESPACE)
 cmake_policy(SET CMP0003 OLD)
-add_library(lobwizard ${LobSrcs} ${LobMoc} ${LobMocUi})
+add_library(lobwizard ${LobSrcs} ${LobMoc} ${LobUi})
 target_link_libraries(lobwizard ${QT_LIBRARIES} pthread)
 
 install(TARGETS lobwizard DESTINATION lobwizard)
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision 76)
+++ CMakeLists.txt	(working copy)
@@ -1,18 +1,23 @@
 cmake_minimum_required(VERSION 2.4)
-set(ORACLE_HOME $ENV{ORACLE_HOME})
+project(LobShooter)
+cmake_policy(SET CMP0003 NEW)
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
+
+find_package(Oracle REQUIRED OCCI CLNTSH)
+
+set(DESIRED_QT_VERSION 4.5)
+find_package(Qt4 REQUIRED)
+
+
 project(oraload)
 add_subdirectory(lib)
+add_subdirectory(lobwizard)
 add_subdirectory(oraload)
-add_subdirectory(lobwizard)
-MESSAGE("----------------------------------------------------------------------------------------------------------------------------------------------------------")
-MESSAGE("Your ORACLE_HOME is set to $ENV{ORACLE_HOME}")
-MESSAGE("Please make sure that it points to your local Oracle Installation.")
-MESSAGE("ORACLE_HOME is needed at compile time.")
-MESSAGE("----------------------------------------------------------------------------------------------------------------------------------------------------------")
-MESSAGE("Your LD_LIBRARY_PATH is set to $ENV{LD_LIBRARY_PATH}")
-MESSAGE("LD_LIBRARY_PATH is needed at runtime and should be added to your environment like this:")
-MESSAGE(" ")
-MESSAGE("LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ENV{ORACLE_HOME}/lib:$ENV{ORACLE_HOME}/ctx/lib")
-MESSAGE("LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib")
-MESSAGE("export LD_LIBRARY_PATH")
-MESSAGE("----------------------------------------------------------------------------------------------------------------------------------------------------------")
+
+MESSAGE(STATUS "")
+MESSAGE(STATUS "Your ORACLE_HOME is set to $ENV{ORACLE_HOME}")
+MESSAGE(STATUS "")
+MESSAGE(STATUS "Your LD_LIBRARY_PATH is set to $ENV{LD_LIBRARY_PATH}")
+MESSAGE(STATUS "It's required to contain oracle libraries in LD_LIBRARY_PATH")
+MESSAGE(STATUS "")

