]> Creatis software - crea.git/commitdiff
creaNewProject
authorguigues <guigues>
Mon, 29 Sep 2008 11:46:14 +0000 (11:46 +0000)
committerguigues <guigues>
Mon, 29 Sep 2008 11:46:14 +0000 (11:46 +0000)
CMakeLists.txt
appli/CMakeLists.txt [new file with mode: 0644]
appli/creaNewProject/CMakeLists.txt [new file with mode: 0644]
appli/creaNewProject/NewProject/CMakeLists.txt.in [new file with mode: 0644]
appli/creaNewProject/creaNewProject.bat.in [new file with mode: 0755]
appli/creaNewProject/creaNewProject.sh.in [new file with mode: 0755]
appli/creaSed/CMakeLists.txt [new file with mode: 0644]
appli/creaSed/creaSed.cpp [new file with mode: 0644]

index dc1f6c0ef8d8ccfb182a5ccbaf28461da39a32ac..609d97710e61fe34f199f7608f1c1d0764fb7bbb 100644 (file)
@@ -33,6 +33,7 @@ INCLUDE(${CREA_CMAKE_DIR}/CREAResolveOptions.cmake)
 
 SUBDIRS(cmake)
 SUBDIRS(src)
+SUBDIRS(appli)
 
 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src)
 INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/src)
diff --git a/appli/CMakeLists.txt b/appli/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9489edf
--- /dev/null
@@ -0,0 +1,4 @@
+SUBDIRS(creaNewProject)
+IF(WIN32)
+  SUBDIRS(creaSed)
+ENDIF(WIN32)
diff --git a/appli/creaNewProject/CMakeLists.txt b/appli/creaNewProject/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a9a08ab
--- /dev/null
@@ -0,0 +1,90 @@
+# Installs creaNewProject.bat/.sh  
+# used to creates the file architecture for a new project
+# and configures/installs the empty project structure used by creaNewProject
+
+SET(INPUT_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/NewProject)
+FILE(GLOB_RECURSE NAMES RELATIVE ${INPUT_PROJECT_DIR} *.txt *.in *.cmake )
+
+IF(WIN32)
+
+
+  # Build tree 
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/creaNewProject.bat.in
+    ${EXECUTABLE_OUTPUT_PATH}/Debug/creaNewProject.bat
+    @ONLY IMMEDIATE
+    )
+  CREA_MKDIR(${EXECUTABLE_OUTPUT_PATH}/Debug/creaNewProject_data)
+  FOREACH( NAME  ${NAMES} )
+    STRING(SUBSTRING ${NAME} 0 3 subStrTmp )
+    MESSAGE(ERROR ${subStrTmp})
+    IF( NOT ${subStrTmp} STREQUAL "../" )
+      CONFIGURE_FILE(${INPUT_PROJECT_DIR}/${NAME} 
+       ${EXECUTABLE_OUTPUT_PATH}/Debug/creaNewProject_data/${NAME}
+       COPYONLY 
+       )
+    ENDIF( NOT ${subStrTmp} STREQUAL "../" )
+  ENDFOREACH(NAME)
+  
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/creaNewProject.bat.in
+    ${EXECUTABLE_OUTPUT_PATH}/Release/creaNewProject.bat
+    @ONLY IMMEDIATE
+    )
+  CREA_MKDIR(${EXECUTABLE_OUTPUT_PATH}/Release/creaNewProject_data)
+  FOREACH( NAME  ${NAMES})
+    STRING(SUBSTRING ${NAME} 0 3 subStrTmp )
+    IF( NOT ${subStrTmp} STREQUAL "../" )
+      CONFIGURE_FILE(${INPUT_PROJECT_DIR}/${NAME} 
+       ${EXECUTABLE_OUTPUT_PATH}/Release/creaNewProject_data/${NAME}
+       COPYONLY )
+    ENDIF( NOT ${subStrTmp} STREQUAL "../" )
+  ENDFOREACH(NAME)
+  
+  
+  # install tree
+  INSTALL(
+    PROGRAMS ${EXECUTABLE_OUTPUT_PATH}/Debug/creaNewProject.bat
+    DESTINATION bin
+    )
+  INSTALL( 
+    DIRECTORY ${EXECUTABLE_OUTPUT_PATH}/Debug/creaNewProject_data
+    DESTINATION bin
+    )  
+  
+ELSE(WIN32)
+
+
+
+  # Build tree 
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/creaNewProject.sh.in
+    ${EXECUTABLE_OUTPUT_PATH}/creaNewProject
+    @ONLY IMMEDIATE
+    )
+  CREA_MKDIR(${EXECUTABLE_OUTPUT_PATH}/creaNewProject_data)
+  FOREACH( NAME  ${NAMES})
+    STRING(SUBSTRING ${NAME} 0 3 subStrTmp )
+    IF( NOT ${subStrTmp} STREQUAL "../" )
+      CONFIGURE_FILE(${INPUT_PROJECT_DIR}/${NAME} 
+       ${EXECUTABLE_OUTPUT_PATH}/creaNewProject_data/${NAME}
+       COPYONLY )
+    ENDIF( NOT ${subStrTmp} STREQUAL "../" )
+  ENDFOREACH(NAME)
+  
+  # Install tree
+  INSTALL(
+    FILES ${EXECUTABLE_OUTPUT_PATH}/creaNewProject
+    DESTINATION bin
+    PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+    )
+  INSTALL( 
+    DIRECTORY ${EXECUTABLE_OUTPUT_PATH}/creaNewProject_data
+    DESTINATION bin
+    )  
+  
+ENDIF(WIN32)
+
+
+
+
diff --git a/appli/creaNewProject/NewProject/CMakeLists.txt.in b/appli/creaNewProject/NewProject/CMakeLists.txt.in
new file mode 100644 (file)
index 0000000..5fba43d
--- /dev/null
@@ -0,0 +1 @@
+PROJECT(PROJECT_NAME)
diff --git a/appli/creaNewProject/creaNewProject.bat.in b/appli/creaNewProject/creaNewProject.bat.in
new file mode 100755 (executable)
index 0000000..842dfde
--- /dev/null
@@ -0,0 +1,51 @@
+@echo off
+
+rem echo creates the file architecture for a new project
+
+
+if %0%1==%0 goto ERROR01
+
+
+rem creaNewProject path
+set BINPATH=%~dp0
+rem Input data path
+set INPUT="%BINPATH%\creaNewProject_data"
+
+set OUTPUT=%1
+set PROJECT=%2
+
+
+rem echo output =  %OUTPUT%
+rem echo bin    =  %BINPATH%
+rem echo input  =  %INPUT%
+rem echo project=  %PROJECT%
+
+IF EXIST %OUTPUT%\%PROJECT% GOTO ERROR02
+
+echo "** Creating new project '%PROJECT%' in folder '%OUTPUT%'"
+
+mkdir %OUTPUT%\%PROJECT%
+xcopy %INPUT% %OUTPUT%\%PROJECT% /S
+"%BINPATH%\creaSed" %OUTPUT%\%PROJECT%\CMakeLists.txt.in  PROJECT_NAME "%PROJECT%" > %OUTPUT%\%PROJECT%\CMakeLists.txt
+del "%OUTPUT%\%PROJECT%\CMakeLists.txt.in" 
+
+echo "Done !" 
+echo "Edit the file '%OUTPUT%\%PROJECT%\CMakeLists.txt' to customize your project"
+
+
+
+goto END
+
+
+:ERROR01
+echo creaNewProject.bat "<project-path> <project-name>"
+goto END
+
+:ERROR02
+echo "ERROR : Directory '%OUTPUT%/%PROJECT%' already exists !"  
+goto end
+
+
+
+:END
+
diff --git a/appli/creaNewProject/creaNewProject.sh.in b/appli/creaNewProject/creaNewProject.sh.in
new file mode 100755 (executable)
index 0000000..e2d12b6
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/bash
+# creates the file architecture for a new project
+
+if [ $# -lt 2 ]
+    then
+    echo "usage : creaNewProject <project-path> <project-name>"  
+    exit
+fi
+
+# creaNewProject path
+TMP=$(which $0|rev)
+BINPATH=$(echo ${TMP#*/}|rev)
+# Input data path
+INPUT=${BINPATH}/creaNewProject_data
+
+OUTPUT=$1
+PROJECT=$2
+
+#echo "output = " $OUTPUT
+#echo "bin    = " $BINPATH
+#echo "input  = " $INPUT
+#echo "project= " $PROJECT
+
+if [ -d $OUTPUT/${PROJECT} ] 
+    then 
+    echo "ERROR : Directory '$OUTPUT/${PROJECT}' already exists !"  
+    exit
+fi
+
+echo "** Creating new project '$PROJECT' in folder '$OUTPUT'"
+
+if [ ! -d $OUTPUT ] 
+    then 
+    echo "ERROR : Directory '$OUTPUT' does not exist !"  
+    exit
+fi
+
+cp -R ${INPUT} "$OUTPUT/$PROJECT"
+cd $OUTPUT/$PROJECT
+
+cat CMakeLists.txt.in | sed s,PROJECT_NAME,"${PROJECT}", > CMakeLists.txt
+rm CMakeLists.txt.in
+
+echo "Done !" 
+echo "Edit the file '$OUTPUT/${PROJECT}/CMakeLists.txt' to customize your project"
diff --git a/appli/creaSed/CMakeLists.txt b/appli/creaSed/CMakeLists.txt
new file mode 100644 (file)
index 0000000..d6a3d6d
--- /dev/null
@@ -0,0 +1,2 @@
+ADD_EXECUTABLE(creaSed creaSed)
+INSTALL(PROGRAMS creaSed DESTINATION bin)
diff --git a/appli/creaSed/creaSed.cpp b/appli/creaSed/creaSed.cpp
new file mode 100644 (file)
index 0000000..51ca114
--- /dev/null
@@ -0,0 +1,71 @@
+
+#include <stdio.h>
+#include <stdio.h>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <vector>
+
+
+
+    void replace( std::string& str,
+                       const std::string& from, 
+                        const std::string& to )
+    {
+      using std::string;
+      string::size_type pos = str.find( from );
+      while ( pos != string::npos )
+      {
+        str.replace( pos, from.size(), to );
+        pos = str.find( from, pos+from.size()-1 );
+      } 
+    }
+
+
+
+
+//==========================================================================
+int main(int argc, char **argv)
+{
+  
+  if (argc!=4) 
+    {
+      std::cerr << "usage : "<< argv[0] <<" fileIn  \"FindString\" \"ReplaceString\"" << std::endl;
+      return 1;
+    }
+
+  FILE *ffIn;
+  std::string fileIn;
+  std::string fileOut;
+  std::string findstring;
+  std::string replacestring;
+  std::string lineStr;
+  char strTmp[255];
+
+  fileIn       = argv[1];
+  findstring   = argv[2];
+  replacestring = argv[3];
+
+  ffIn =  fopen(fileIn.c_str(),"r");
+  if (ffIn){
+        while(!feof(ffIn)){
+           fgets( strTmp , 255, ffIn );
+            lineStr=strTmp;
+           if( feof(ffIn) && (lineStr.length()==1) ) { 
+           } else {
+             replace( lineStr,findstring, replacestring );
+             std::cout << lineStr;
+            }
+        }
+       fclose(ffIn);   
+  } else {
+      std::cerr << "ERROR. File : "<< argv[1] <<" Not exists." << std::endl;
+      return 1;
+  }
+
+
+  return 0;
+}
+//==========================================================================
+
+