From 20f329a7a38cd02586ef305d551d288ebcf39501 Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Wed, 4 Mar 2015 13:44:03 +0100 Subject: Also clean up generated Cython files during `make clean` --- build/linux/Makefile.in | 2 ++ 1 file changed, 2 insertions(+) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index cd5e74b..92697b2 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -303,6 +303,8 @@ clean: rm -f $(TEST_OBJECTS) test.bin rm -fr ../../python/finalbuild/ rm -fr ../../python/build/ + rm -f ../../python/astra/*.cpp + rm -f ../../python/astra/*.c distclean: clean rm -f config.guess config.sub ltmain.sh libtool install-sh -- cgit v1.2.3 From 8a1001f236cc0d31d24c250e6eb1f0cd1c419ebc Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Thu, 5 Mar 2015 12:22:52 +0100 Subject: Force clang to use libstdc++ on OSX (fixes Cython compilation) --- build/linux/Makefile.in | 2 ++ build/linux/configure.ac | 13 +++++++++++++ 2 files changed, 15 insertions(+) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 92697b2..2d62a17 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -32,6 +32,8 @@ CXXFLAGS+=-g -O3 -Wall -Wshadow LIBS+=-lpthread LDFLAGS+=-g +CPPFLAGS+=@CPPFLAGS_OS@ + ifeq ($(cuda),yes) CPPFLAGS += @CPPFLAGS_CUDA@ -DASTRA_CUDA NVCCFLAGS = @NVCCFLAGS@ @CPPFLAGS_CUDA@ -I../.. -I../../include -DASTRA_CUDA diff --git a/build/linux/configure.ac b/build/linux/configure.ac index b97a7a0..129079c 100644 --- a/build/linux/configure.ac +++ b/build/linux/configure.ac @@ -208,6 +208,19 @@ fi AC_SUBST(HAVEPYTHON) +#OS specific setup +AC_CANONICAL_HOST +case $host_os in + darwin* ) + CPPFLAGS_OS="-stdlib=libstdc++ -mmacosx-version-min=10.6" + ;; + *) + CPPFLAGS_OS="" + ;; +esac + +AC_SUBST(CPPFLAGS_OS) + # TODO: -- cgit v1.2.3 From c58a0f821cf494741e039d4b56aabb7a9ffe85bf Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Fri, 6 Mar 2015 21:23:19 +0100 Subject: Make boost-unit-test-framework optional in configure --- build/linux/Makefile.in | 10 +++++++++- build/linux/configure.ac | 7 ++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 2d62a17..f647299 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -1,6 +1,7 @@ cuda=@HAVECUDA@ matlab=@HAVEMATLAB@ python=@HAVEPYTHON@ +boostutf=@HAVEBOOSTUTF@ MATLAB_ROOT=@MATLAB_ROOT@ @@ -59,6 +60,8 @@ endif BOOST_CPPFLAGS= BOOST_LDFLAGS= +BOOSTUTF_LIBS=@LIBS_BOOSTUTF@ + CPPFLAGS+=$(BOOST_CPPFLAGS) LDFLAGS+=$(BOOST_LDFLAGS) @@ -290,11 +293,16 @@ ifeq ($(cuda),yes) @rm -f $(*F).linkinfo endif +ifeq ($(boostutf),yes) test.bin: $(ALL_OBJECTS) $(TEST_OBJECTS) - ./libtool --mode=link $(LD) -o $@ $(LDFLAGS) $(LIBS) $+ -lboost_unit_test_framework + ./libtool --mode=link $(LD) -o $@ $(LDFLAGS) $+ $(LIBS) $(BOOSTUTF_LIBS) test: test.bin ./test.bin +else +test: + @echo "Tests have been disabled by configure" +endif clean: rm -f $(MATLAB_MEX) libastra.la diff --git a/build/linux/configure.ac b/build/linux/configure.ac index 129079c..6558445 100644 --- a/build/linux/configure.ac +++ b/build/linux/configure.ac @@ -53,20 +53,25 @@ AC_CHECK_HEADER(iostream, , AC_MSG_ERROR([No working c++ compiler found])) AC_MSG_CHECKING([for boost-unit-test-framework]) ASTRA_CHECK_BOOST_UNIT_TEST_FRAMEWORK(-lboost_unit_test_framework-mt, BOOSTUTF=yes_mt, BOOSTUTF=no) +HAVEBOOSTUTF=no if test x$BOOSTUTF = xno; then ASTRA_CHECK_BOOST_UNIT_TEST_FRAMEWORK(-lboost_unit_test_framework, BOOSTUTF=yes, BOOSTUTF=no) if test x$BOOSTUTF = xno; then AC_MSG_RESULT(no) - AC_MSG_ERROR([No boost-unit-test-framework library found]) else AC_MSG_RESULT([yes, libboost_unit_test_framework]) LIBS_BOOSTUTF="-lboost_unit_test_framework" + HAVEBOOSTUTF=yes fi else AC_MSG_RESULT([yes, libboost_unit_test_framework-mt]) LIBS_BOOSTUTF="-lboost_unit_test_framework-mt" + HAVEBOOSTUTF=yes fi +AC_SUBST(HAVEBOOSTUTF) +AC_SUBST(LIBS_BOOSTUTF) + # nvcc, cuda -- cgit v1.2.3 From 475b1746c133b0286871b7414918704557f1abcc Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Mon, 9 Mar 2015 15:53:07 +0100 Subject: Remove old Logging code (only used in fft.cu) --- build/linux/Makefile.in | 1 - 1 file changed, 1 deletion(-) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index 92697b2..d9ff045 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -118,7 +118,6 @@ BASE_OBJECTS=\ src/Fourier.lo \ src/GeometryUtil3D.lo \ src/Globals.lo \ - src/Logger.lo \ src/ParallelBeamBlobKernelProjector2D.lo \ src/ParallelBeamLinearKernelProjector2D.lo \ src/ParallelBeamLineKernelProjector2D.lo \ -- cgit v1.2.3 From 30208e988315c8f576da6848cdc3236413c0cd10 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 9 Mar 2015 18:12:37 +0100 Subject: Add check for required boost headers --- build/linux/configure.ac | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'build') diff --git a/build/linux/configure.ac b/build/linux/configure.ac index 6558445..d9e1f1a 100644 --- a/build/linux/configure.ac +++ b/build/linux/configure.ac @@ -72,6 +72,17 @@ fi AC_SUBST(HAVEBOOSTUTF) AC_SUBST(LIBS_BOOSTUTF) +BOOSTok=yes +AC_CHECK_HEADER([boost/lexical_cast.hpp],[],[BOOSTok=no],[]) +AC_CHECK_HEADER([boost/any.hpp],[],[BOOSTok=no],[]) +dnl AC_CHECK_HEADER([boost/thread.hpp],[],[BOOSTok=no],[]) +dnl AC_CHECK_HEADER([boost/bind.hpp],[],[BOOSTok=no],[]) +AC_CHECK_HEADER([boost/static_assert.hpp],[],[BOOSTok=no],[]) +AC_CHECK_HEADER([boost/throw_exception.hpp],[],[BOOSTok=no],[]) + +if test x$BOOSTok = xno; then + AC_MSG_ERROR([boost not found]) +fi # nvcc, cuda -- cgit v1.2.3 From a1dff91d7d8db49ecd79dfbcc6a6a663b114f9fd Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Mon, 9 Mar 2015 17:51:42 +0100 Subject: Adds new logging capabilities (based on clog.h) --- build/linux/Makefile.in | 1 + 1 file changed, 1 insertion(+) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index d9ff045..c2b9994 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -118,6 +118,7 @@ BASE_OBJECTS=\ src/Fourier.lo \ src/GeometryUtil3D.lo \ src/Globals.lo \ + src/Logging.lo \ src/ParallelBeamBlobKernelProjector2D.lo \ src/ParallelBeamLinearKernelProjector2D.lo \ src/ParallelBeamLineKernelProjector2D.lo \ -- cgit v1.2.3 From e4614cf09b90cc9a0e38d370bb090a11f3877b33 Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Fri, 13 Mar 2015 14:21:53 +0100 Subject: Add logging support to Matlab --- build/linux/Makefile.in | 1 + 1 file changed, 1 insertion(+) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index c2b9994..f862114 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -225,6 +225,7 @@ MATLAB_MEX=\ matlab/mex/astra_mex_matrix_c.$(MEXSUFFIX) \ matlab/mex/astra_mex_projector_c.$(MEXSUFFIX) \ matlab/mex/astra_mex_projector3d_c.$(MEXSUFFIX) \ + matlab/mex/astra_mex_log_c.$(MEXSUFFIX) \ matlab/mex/astra_mex_data3d_c.$(MEXSUFFIX) -- cgit v1.2.3 From f21700e00e81538d5510973a51b8ae97fb4a24dd Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Fri, 13 Mar 2015 17:12:42 +0100 Subject: Enable logging to Matlab window using callback function Also introduces a mex initialize function that is called at the first invocation of any mex method. --- build/linux/Makefile.in | 1 + 1 file changed, 1 insertion(+) (limited to 'build') diff --git a/build/linux/Makefile.in b/build/linux/Makefile.in index f862114..49220df 100644 --- a/build/linux/Makefile.in +++ b/build/linux/Makefile.in @@ -216,6 +216,7 @@ TEST_OBJECTS=\ MATLAB_CXX_OBJECTS=\ matlab/mex/mexHelpFunctions.o \ matlab/mex/mexCopyDataHelpFunctions.o \ + matlab/mex/mexInitFunctions.o \ matlab/mex/mexDataManagerHelpFunctions.o MATLAB_MEX=\ -- cgit v1.2.3 From 230afc786fb86a53f938843a5a9ddfc6e4198974 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Thu, 19 Mar 2015 17:12:15 +0100 Subject: Generate MSVC 2008/2012 project files with a Python script --- build/msvc/gen.py | 1088 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1088 insertions(+) create mode 100644 build/msvc/gen.py (limited to 'build') diff --git a/build/msvc/gen.py b/build/msvc/gen.py new file mode 100644 index 0000000..0eb306e --- /dev/null +++ b/build/msvc/gen.py @@ -0,0 +1,1088 @@ +from __future__ import print_function +import sys +import os + +vcppguid = "8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942" # C++ project +siguid = "2150E333-8FDC-42A3-9474-1A3956D46DE8" # project group + + +def create_mex_project(name, uuid11, uuid09): + return { "type": vcppguid, "name": name, "file11": "matlab\\mex\\" + name + "_vc11.vcxproj", "file09": "matlab\\mex\\" + name + "_vc09.vcproj", "uuid11": uuid11, "uuid09": uuid09, "files": [] } + +P_astra = { "type": vcppguid, "name": "astra_vc11", "file11": "astra_vc11.vcxproj", "file09": "astra_vc09.vcproj", "uuid11": "BE9F1326-527C-4284-AE2C-D1E25D539CEA", "uuid09": "12926444-6723-46A8-B388-12E65E0577FA" } + +P0 = create_mex_project("astra_mex", "3FDA35E0-0D54-4663-A3E6-5ABA96F32221", "3FDA35E0-0D54-4663-A3E6-5ABA96F32221") + +P1 = create_mex_project("astra_mex_algorithm", "056BF7A9-294D-487C-8CC3-BE629077CA94", "056BF7A9-294D-487C-8CC3-BE629077CA94") +P2 = create_mex_project("astra_mex_data2d", "E4092269-B19C-46F7-A84E-4F146CC70E44", "E4092269-B19C-46F7-A84E-4F146CC70E44") +P3 = create_mex_project("astra_mex_data3d", "0BEC029B-0929-4BF9-BD8B-9C9806A52065", "0BEC029B-0929-4BF9-BD8B-9C9806A52065") +P4 = create_mex_project("astra_mex_matrix", "9D041710-2119-4230-BCF2-5FBE753FDE49", "9D041710-2119-4230-BCF2-5FBE753FDE49") +P5 = create_mex_project("astra_mex_projector", "4DD6056F-8EEE-4C9A-B2A9-923F01A32E97", "4DD6056F-8EEE-4C9A-B2A9-923F01A32E97") +P6 = create_mex_project("astra_mex_projector3d", "F94CCD79-AA11-42DF-AC8A-6C9D2238A883", "F94CCD79-AA11-42DF-AC8A-6C9D2238A883") + +F_astra_mex = { "type": siguid, + "name": "astra_mex", + "file11": "astra_mex", + "file09": "astra_mex", + "uuid11": "5E99A109-374E-4102-BE9B-99BA1FA8AA30", + "uuid09": "33EF0AC5-B475-40BF-BAE5-67075B204D10", + "entries": [ P0, P1, P2, P3, P4, P5, P6 ] } + + +P0["files"] = [ +"astra_mex_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +] +P1["files"] = [ +"astra_mex_algorithm_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +] +P2["files"] = [ +"astra_mex_data2d_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +"mexCopyDataHelpFunctions.cpp", +"mexCopyDataHelpFunctions.h", +"mexDataManagerHelpFunctions.cpp", +"mexDataManagerHelpFunctions.h", +] +P3["files"] = [ +"astra_mex_data3d_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +"mexCopyDataHelpFunctions.cpp", +"mexCopyDataHelpFunctions.h", +"mexDataManagerHelpFunctions.cpp", +"mexDataManagerHelpFunctions.h", +] +P4["files"] = [ +"astra_mex_matrix_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +] +P5["files"] = [ +"astra_mex_projector_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +] +P6["files"] = [ +"astra_mex_projector3d_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +] + + +P_astra["filter_names"] = [ +"Algorithms", +"Data Structures", +"Projectors", +"CUDA", +"Global & Other", +"Geometries", +"Algorithms\\headers", +"Algorithms\\source", +"Data Structures\\headers", +"Data Structures\\source", +"Global & Other\\headers", +"Global & Other\\source", +"Geometries\\headers", +"Geometries\\source", +"Projectors\\headers", +"Projectors\\inline", +"Projectors\\source", +"CUDA\\astra headers", +"CUDA\\astra source", +"CUDA\\cuda headers", +"CUDA\\cuda source", +] +P_astra["filters"] = {} +P_astra["filters"]["Algorithms"] = [ "262b0d17-774a-4cb1-b51a-b358d2d02791" ] +P_astra["filters"]["Data Structures"] = [ "76d6d672-670b-4454-b3ab-10dc8f9b8710" ] +P_astra["filters"]["Projectors"] = [ "77a581a9-60da-4265-97c0-80cdf97408c0" ] +P_astra["filters"]["CUDA"] = [ "c1af0e56-5fcc-4e75-b5db-88eeb4148185" ] +P_astra["filters"]["Global & Other"] = [ "72fbe846-10ef-4c52-88df-13bd66c4cbfc" ] +P_astra["filters"]["Geometries"] = [ "7ef37c12-c98c-4dd6-938d-12f49279eae0" ] +P_astra["filters"]["CUDA\\cuda source"] = [ +"04a878ed-77b4-4525-9bc2-38ccd65282c5", +"cuda\\2d\\algo.cu", +"cuda\\2d\\arith.cu", +"cuda\\2d\\astra.cu", +"cuda\\2d\\cgls.cu", +"cuda\\2d\\darthelper.cu", +"cuda\\2d\\em.cu", +"cuda\\2d\\fan_bp.cu", +"cuda\\2d\\fan_fp.cu", +"cuda\\2d\\fft.cu", +"cuda\\2d\\par_bp.cu", +"cuda\\2d\\par_fp.cu", +"cuda\\2d\\sart.cu", +"cuda\\2d\\sirt.cu", +"cuda\\2d\\util.cu", +"cuda\\3d\\algo3d.cu", +"cuda\\3d\\arith3d.cu", +"cuda\\3d\\astra3d.cu", +"cuda\\3d\\cgls3d.cu", +"cuda\\3d\\cone_bp.cu", +"cuda\\3d\\cone_fp.cu", +"cuda\\3d\\darthelper3d.cu", +"cuda\\3d\\fdk.cu", +"cuda\\3d\\par3d_bp.cu", +"cuda\\3d\\par3d_fp.cu", +"cuda\\3d\\sirt3d.cu", +"cuda\\3d\\util3d.cu", +] +P_astra["filters"]["Algorithms\\source"] = [ +"9df653ab-26c3-4bec-92a2-3dda22fda761", +"src\\Algorithm.cpp", +"src\\ArtAlgorithm.cpp", +"src\\AsyncAlgorithm.cpp", +"src\\BackProjectionAlgorithm.cpp", +"src\\CglsAlgorithm.cpp", +"src\\FilteredBackProjectionAlgorithm.cpp", +"src\\ForwardProjectionAlgorithm.cpp", +"src\\ReconstructionAlgorithm2D.cpp", +"src\\ReconstructionAlgorithm3D.cpp", +"src\\SartAlgorithm.cpp", +"src\\SirtAlgorithm.cpp", +] +P_astra["filters"]["Data Structures\\source"] = [ +"95346487-8185-487b-a794-3e7fb5fcbd4c", +"src\\Float32Data.cpp", +"src\\Float32Data2D.cpp", +"src\\Float32Data3D.cpp", +"src\\Float32Data3DMemory.cpp", +"src\\Float32ProjectionData2D.cpp", +"src\\Float32ProjectionData3D.cpp", +"src\\Float32ProjectionData3DMemory.cpp", +"src\\Float32VolumeData2D.cpp", +"src\\Float32VolumeData3D.cpp", +"src\\Float32VolumeData3DMemory.cpp", +"src\\SparseMatrix.cpp", +] +P_astra["filters"]["Global & Other\\source"] = [ +"1546cb47-7e5b-42c2-b695-ef172024c14b", +"src\\AstraObjectFactory.cpp", +"src\\AstraObjectManager.cpp", +"src\\Config.cpp", +"src\\Fourier.cpp", +"src\\Globals.cpp", +"src\\Logger.cpp", +"src\\PlatformDepSystemCode.cpp", +"src\\Utilities.cpp", +"src\\XMLDocument.cpp", +"src\\XMLNode.cpp", +] +P_astra["filters"]["Geometries\\source"] = [ +"dc27bff7-4256-4311-a131-47612a44af20", +"src\\ConeProjectionGeometry3D.cpp", +"src\\ConeVecProjectionGeometry3D.cpp", +"src\\FanFlatProjectionGeometry2D.cpp", +"src\\FanFlatVecProjectionGeometry2D.cpp", +"src\\GeometryUtil3D.cpp", +"src\\ParallelProjectionGeometry2D.cpp", +"src\\ParallelProjectionGeometry3D.cpp", +"src\\ParallelVecProjectionGeometry3D.cpp", +"src\\ProjectionGeometry2D.cpp", +"src\\ProjectionGeometry3D.cpp", +"src\\SparseMatrixProjectionGeometry2D.cpp", +"src\\VolumeGeometry2D.cpp", +"src\\VolumeGeometry3D.cpp", +] +P_astra["filters"]["Projectors\\source"] = [ +"2d60e3c8-7874-4cee-b139-991ac15e811d", +"src\\DataProjector.cpp", +"src\\DataProjectorPolicies.cpp", +"src\\FanFlatBeamLineKernelProjector2D.cpp", +"src\\FanFlatBeamStripKernelProjector2D.cpp", +"src\\ParallelBeamBlobKernelProjector2D.cpp", +"src\\ParallelBeamLinearKernelProjector2D.cpp", +"src\\ParallelBeamLineKernelProjector2D.cpp", +"src\\ParallelBeamStripKernelProjector2D.cpp", +"src\\Projector2D.cpp", +"src\\Projector3D.cpp", +"src\\SparseMatrixProjector2D.cpp", +] +P_astra["filters"]["CUDA\\astra source"] = [ +"bbef012e-598a-456f-90d8-416bdcb4221c", +"src\\CudaBackProjectionAlgorithm.cpp", +"src\\CudaBackProjectionAlgorithm3D.cpp", +"src\\CudaCglsAlgorithm.cpp", +"src\\CudaCglsAlgorithm3D.cpp", +"src\\CudaDartMaskAlgorithm.cpp", +"src\\CudaDartMaskAlgorithm3D.cpp", +"src\\CudaDartSmoothingAlgorithm.cpp", +"src\\CudaDartSmoothingAlgorithm3D.cpp", +"src\\CudaDataOperationAlgorithm.cpp", +"src\\CudaEMAlgorithm.cpp", +"src\\CudaFDKAlgorithm3D.cpp", +"src\\CudaFilteredBackProjectionAlgorithm.cpp", +"src\\CudaForwardProjectionAlgorithm.cpp", +"src\\CudaForwardProjectionAlgorithm3D.cpp", +"src\\CudaProjector2D.cpp", +"src\\CudaProjector3D.cpp", +"src\\CudaReconstructionAlgorithm2D.cpp", +"src\\CudaRoiSelectAlgorithm.cpp", +"src\\CudaSartAlgorithm.cpp", +"src\\CudaSirtAlgorithm.cpp", +"src\\CudaSirtAlgorithm3D.cpp", +] +P_astra["filters"]["CUDA\\cuda headers"] = [ +"4e17872e-db7d-41bc-9760-fad1c253b583", +"cuda\\2d\\algo.h", +"cuda\\2d\\arith.h", +"cuda\\2d\\astra.h", +"cuda\\2d\\cgls.h", +"cuda\\2d\\darthelper.h", +"cuda\\2d\\dims.h", +"cuda\\2d\\em.h", +"cuda\\2d\\fan_bp.h", +"cuda\\2d\\fan_fp.h", +"cuda\\2d\\fbp_filters.h", +"cuda\\2d\\fft.h", +"cuda\\2d\\par_bp.h", +"cuda\\2d\\par_fp.h", +"cuda\\2d\\sart.h", +"cuda\\2d\\sirt.h", +"cuda\\2d\\util.h", +"cuda\\3d\\algo3d.h", +"cuda\\3d\\arith3d.h", +"cuda\\3d\\astra3d.h", +"cuda\\3d\\cgls3d.h", +"cuda\\3d\\cone_bp.h", +"cuda\\3d\\cone_fp.h", +"cuda\\3d\\darthelper3d.h", +"cuda\\3d\\dims3d.h", +"cuda\\3d\\fdk.h", +"cuda\\3d\\par3d_bp.h", +"cuda\\3d\\par3d_fp.h", +"cuda\\3d\\sirt3d.h", +"cuda\\3d\\util3d.h", +] +P_astra["filters"]["Algorithms\\headers"] = [ +"a76ffd6d-3895-4365-b27e-fc9a72f2ed75", +"include\\astra\\Algorithm.h", +"include\\astra\\AlgorithmTypelist.h", +"include\\astra\\ArtAlgorithm.h", +"include\\astra\\AsyncAlgorithm.h", +"include\\astra\\BackProjectionAlgorithm.h", +"include\\astra\\CglsAlgorithm.h", +"include\\astra\\CudaBackProjectionAlgorithm.h", +"include\\astra\\CudaBackProjectionAlgorithm3D.h", +"include\\astra\\FilteredBackProjectionAlgorithm.h", +"include\\astra\\ForwardProjectionAlgorithm.h", +"include\\astra\\ReconstructionAlgorithm2D.h", +"include\\astra\\ReconstructionAlgorithm3D.h", +"include\\astra\\SartAlgorithm.h", +"include\\astra\\SirtAlgorithm.h", +] +P_astra["filters"]["Data Structures\\headers"] = [ +"444c44b0-6454-483a-be26-7cb9c8ab0b98", +"include\\astra\\Float32Data.h", +"include\\astra\\Float32Data2D.h", +"include\\astra\\Float32Data3D.h", +"include\\astra\\Float32Data3DMemory.h", +"include\\astra\\Float32ProjectionData2D.h", +"include\\astra\\Float32ProjectionData3D.h", +"include\\astra\\Float32ProjectionData3DMemory.h", +"include\\astra\\Float32VolumeData2D.h", +"include\\astra\\Float32VolumeData3D.h", +"include\\astra\\Float32VolumeData3DMemory.h", +"include\\astra\\SparseMatrix.h", +] +P_astra["filters"]["Global & Other\\headers"] = [ +"1c52efc8-a77e-4c72-b9be-f6429a87e6d7", +"include\\astra\\AstraObjectFactory.h", +"include\\astra\\AstraObjectManager.h", +"include\\astra\\Config.h", +"include\\astra\\Fourier.h", +"include\\astra\\Globals.h", +"include\\astra\\Logger.h", +"include\\astra\\PlatformDepSystemCode.h", +"include\\astra\\Singleton.h", +"include\\astra\\TypeList.h", +"include\\astra\\Utilities.h", +"include\\astra\\Vector3D.h", +"include\\astra\\XMLDocument.h", +"include\\astra\\XMLNode.h", +] +P_astra["filters"]["Geometries\\headers"] = [ +"eddb31ba-0db7-4ab1-a490-36623aaf8901", +"include\\astra\\ConeProjectionGeometry3D.h", +"include\\astra\\ConeVecProjectionGeometry3D.h", +"include\\astra\\FanFlatProjectionGeometry2D.h", +"include\\astra\\FanFlatVecProjectionGeometry2D.h", +"include\\astra\\GeometryUtil2D.h", +"include\\astra\\GeometryUtil3D.h", +"include\\astra\\ParallelProjectionGeometry2D.h", +"include\\astra\\ParallelProjectionGeometry3D.h", +"include\\astra\\ParallelVecProjectionGeometry3D.h", +"include\\astra\\ProjectionGeometry2D.h", +"include\\astra\\ProjectionGeometry3D.h", +"include\\astra\\SparseMatrixProjectionGeometry2D.h", +"include\\astra\\VolumeGeometry2D.h", +"include\\astra\\VolumeGeometry3D.h", +] +P_astra["filters"]["Projectors\\headers"] = [ +"91ae2cfd-6b45-46eb-ad99-2f16e5ce4b1e", +"include\\astra\\DataProjector.h", +"include\\astra\\DataProjectorPolicies.h", +"include\\astra\\FanFlatBeamLineKernelProjector2D.h", +"include\\astra\\FanFlatBeamStripKernelProjector2D.h", +"include\\astra\\ParallelBeamBlobKernelProjector2D.h", +"include\\astra\\ParallelBeamLinearKernelProjector2D.h", +"include\\astra\\ParallelBeamLineKernelProjector2D.h", +"include\\astra\\ParallelBeamStripKernelProjector2D.h", +"include\\astra\\Projector2D.h", +"include\\astra\\Projector3D.h", +"include\\astra\\ProjectorTypelist.h", +"include\\astra\\SparseMatrixProjector2D.h", +] +P_astra["filters"]["CUDA\\astra headers"] = [ +"bd4e1f94-2f56-4db6-b946-20c29d65a351", +"include\\astra\\CudaCglsAlgorithm.h", +"include\\astra\\CudaCglsAlgorithm3D.h", +"include\\astra\\CudaDartMaskAlgorithm.h", +"include\\astra\\CudaDartMaskAlgorithm3D.h", +"include\\astra\\CudaDartSmoothingAlgorithm.h", +"include\\astra\\CudaDartSmoothingAlgorithm3D.h", +"include\\astra\\CudaDataOperationAlgorithm.h", +"include\\astra\\CudaEMAlgorithm.h", +"include\\astra\\CudaFDKAlgorithm3D.h", +"include\\astra\\CudaFilteredBackProjectionAlgorithm.h", +"include\\astra\\CudaForwardProjectionAlgorithm.h", +"include\\astra\\CudaForwardProjectionAlgorithm3D.h", +"include\\astra\\CudaProjector2D.h", +"include\\astra\\CudaProjector3D.h", +"include\\astra\\CudaReconstructionAlgorithm2D.h", +"include\\astra\\CudaRoiSelectAlgorithm.h", +"include\\astra\\CudaSartAlgorithm.h", +"include\\astra\\CudaSirtAlgorithm.h", +"include\\astra\\CudaSirtAlgorithm3D.h", + +] +P_astra["filters"]["Projectors\\inline"] = [ +"0daffd63-ba49-4a5f-8d7a-5322e0e74f22", +"include\\astra\\DataProjectorPolicies.inl", +"include\\astra\\FanFlatBeamLineKernelProjector2D.inl", +"include\\astra\\FanFlatBeamStripKernelProjector2D.inl", +"include\\astra\\ParallelBeamBlobKernelProjector2D.inl", +"include\\astra\\ParallelBeamLinearKernelProjector2D.inl", +"include\\astra\\ParallelBeamLineKernelProjector2D.inl", +"include\\astra\\ParallelBeamStripKernelProjector2D.inl", +"include\\astra\\SparseMatrixProjector2D.inl", +] + +P_astra["files"] = [] +for f in P_astra["filters"]: + P_astra["files"].extend(P_astra["filters"][f][1:]) +P_astra["files"].sort() + +projects = [ P_astra, F_astra_mex, P0, P1, P2, P3, P4, P5, P6 ] + +bom = "\xef\xbb\xbf" + +class Configuration: + def __init__(self, debug, cuda, x64): + self.debug = debug + self.cuda = cuda + self.x64 = x64 + def type(self): + if self.debug: + return "Debug" + else: + return "Release" + def config(self): + n = self.type() + if self.cuda: + n += "_CUDA" + return n + def platform(self): + if self.x64: + n = "x64" + else: + n = "Win32" + return n + def name(self): + n = self.config() + n += "|" + n += self.platform() + return n + def target(self): + n = "Astra" + if self.cuda: + n += "Cuda" + if self.x64: + n += "64" + else: + n += "32" + if self.debug: + n += "D" + return n + + + +configs = [ Configuration(a,b,c) for a in [ True, False ] for b in [ True, False ] for c in [ False, True ] ] + +def write_sln(version): + main_project = P_astra + if version == 9: + F = open("astra_vc09.sln", "w") + elif version == 11: + F = open("astra_vc11.sln", "w") + else: + assert(False) + print(bom, file=F) + if version == 9: + print("Microsoft Visual Studio Solution File, Format Version 10.00", file=F) + print("# Visual Studio 2008", file=F) + uuid = "uuid09" + file_ = "file09" + elif version == 11: + print("Microsoft Visual Studio Solution File, Format Version 12.00", file=F) + print("# Visual Studio 2012", file=F) + uuid = "uuid11" + file_ = "file11" + for p in projects: + s = '''Project("{%s}") = "%s", "%s", "{%s}"''' % (p["type"], p["name"], p[file_], p[uuid]) + print(s, file=F) + if "mex" in p["name"]: + print("\tProjectSection(ProjectDependencies) = postProject", file=F) + print("\t\t{%s} = {%s}" % (main_project[uuid], main_project[uuid]), file=F) + print("\tEndProjectSection", file=F) + print("EndProject", file=F) + print("Global", file=F) + print("\tGlobalSection(SolutionConfigurationPlatforms) = preSolution", file=F) + for c in configs: + print("\t\t" + c.name() + " = " + c.name(), file=F) + print("\tEndGlobalSection", file=F) + print("\tGlobalSection(ProjectConfigurationPlatforms) = postSolution", file=F) + for p in projects: + if "entries" in p: + continue + for c in configs: + print("\t\t{" + p[uuid] + "}." + c.name() + ".ActiveCfg = " + c.name(), file=F) + print("\t\t{" + p[uuid] + "}." + c.name() + ".Build.0 = " + c.name(), file=F) + print("\tEndGlobalSection", file=F) + print("\tGlobalSection(SolutionProperties) = preSolution", file=F) + print("\t\tHideSolutionNode = FALSE", file=F) + print("\tEndGlobalSection", file=F) + print("\tGlobalSection(NestedProjects) = preSolution", file=F) + for p in projects: + if "entries" not in p: + continue + for e in p["entries"]: + print("\t\t{" + e[uuid] + "} = {" + p[uuid] + "}", file=F) + print("\tEndGlobalSection", file=F) + print("EndGlobal", file=F) + F.close() + +def write_project11_start(P, F): + print(bom + '', file=F) + print('', file=F) + print(' ', file=F) + for c in configs: + print(' ', file=F) + print(' ' + c.config() + '', file=F) + print(' ' + c.platform() + '', file=F) + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + if 'mex' in P["name"]: + print(' ' + P["name"] + '', file=F) + print(' {' + P["uuid11"] + '}', file=F) + if 'mex' in P["name"]: + print(' astraMatlab', file=F) + else: + print(' ' + P["name"] + '', file=F) + print(' ', file=F) + print(' ', file=F) + for c in configs: + print(''' ''' % (c.name(), ), file=F) + print(' DynamicLibrary', file=F) + if 'mex' not in P["name"]: + if c.debug: + print(' true', file=F) + else: + print(' false', file=F) + print(' v110', file=F) + if 'mex' not in P["name"]: + if not c.debug: + print(' true', file=F) + print(' MultiByte', file=F) + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + if "mex" not in P["name"]: + print(' ', file=F) + print(' ', file=F) + for c in configs: + print(''' ''' % (c.name(), ), file=F) + print(''' ''', file=F) + print(''' ''', file=F) + print(' ', file=F) + +def write_project11_end(P, F): + l = [ f for f in P["files"] if len(f) > 4 and f[-4:] == ".cpp" ] + if l: + print(' ', file=F) + for f in l: + if ("cuda" in f) or ("Cuda" in f): + print(' ', file=F) + for c in configs: + if not c.cuda: + print(''' true''' % (c.name(), ), file=F) + print(' ', file=F) + else: + print(' ', file=F) + print(' ', file=F) + l = [ f for f in P["files"] if len(f) > 2 and f[-2:] == ".h" ] + if l: + print(' ', file=F) + for f in l: + print(' ', file=F) + print(' ', file=F) + l = [ f for f in P["files"] if len(f) > 3 and f[-3:] == ".cu" ] + if l: + print(' ', file=F) + for f in l: + print(' ', file=F) + for c in configs: + if not c.cuda: + print(''' true''' % (c.name(), ), file=F) + print(' ', file=F) + print(' ', file=F) + l = [ f for f in P["files"] if len(f) > 4 and f[-4:] == ".inl" ] + if l: + print(' ', file=F) + for f in l: + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + if "mex" not in P["name"]: + print(' ', file=F) + print(' ', file=F) + print('', end="", file=F) + + +def write_main_project11(): + P = P_astra; + F = open(P["file11"], "w") + write_project11_start(P, F) + for c in configs: + print(''' ''' % (c.name(), ), file=F) + if c.cuda: + print(' $(CUDA_INC_PATH);$(IncludePath)', file=F) + print(' $(CUDA_LIB_PATH);$(LibraryPath)', file=F) + print(' $(SolutionDir)bin\\$(Platform)\\' + c.config() + '\\', file=F) + print(' $(OutDir)obj\\', file=F) + print(' .dll', file=F) + print(' ' + c.target() + '', file=F) + print(' true', file=F) + print(' ', file=F) + for c in configs: + print(''' ''' % (c.name(), ), file=F) + print(' ', file=F) + if c.debug: + print(' MultiThreadedDebugDLL', file=F) + else: + print(' MultiThreadedDLL', file=F) + print(' Level3', file=F) + print(' lib\include;include\;%(AdditionalIncludeDirectories)', file=F) + print(' true', file=F) + if not c.x64: # /arch:SSE2 is implicit on x64 + print(' StreamingSIMDExtensions2', file=F) + if c.debug: + print(' Disabled', file=F) + else: + print(' MaxSpeed', file=F) + print(' true', file=F) + print(' true', file=F) + print(' AnySuitable', file=F) + print(' Speed', file=F) + d=' ' + if c.cuda: + d+="ASTRA_CUDA;" + d+="__SSE2__;" + d+="DLL_EXPORTS;_CRT_SECURE_NO_WARNINGS;" + d+='%(PreprocessorDefinitions)' + print(d, file=F) + print(' true', file=F) + print(' true', file=F) + print(' ', file=F) + print(' ', file=F) + print(' true', file=F) + if not c.debug: + print(' true', file=F) + print(' true', file=F) + print(' bin\\' + c.platform() + '\\' + c.config() + '\\' + c.target() + '.dll', file=F) + if c.cuda: + print(' cudart.lib;cufft.lib;%(AdditionalDependencies)', file=F) + l = ' '; + if c.x64: + l += 'lib\\x64' + else: + l += 'lib\\win32' + l += ';%(AdditionalLibraryDirectories)' + if c.cuda: + l += ';$(CudaToolkitLibDir)' + l += '' + print(l, file=F) + print(' ', file=F) + if c.cuda: + print(' ', file=F) + if c.x64: + print(' 64', file=F) + else: + print(' 32', file=F) + print(' true', file=F) + print(' compute_20,sm_20;compute_30,sm_30;compute_30,sm_35;compute_30,compute_30', file=F) + print(' ', file=F) + print(' ', file=F) + write_project11_end(P, F) + F.close() + +def write_mex_project11(P): + F = open("matlab/mex/" + P["name"] + "_vc11.vcxproj", "w") + write_project11_start(P, F) + print(' ', file=F) + print(' <_ProjectFileVersion>11.0.60610.1', file=F) + print(' ', file=F) + for c in configs: + print(''' ''' % (c.name(), ), file=F) + print(' $(SolutionDir)bin\\$(Platform)\\$(Configuration)\\', file=F) + print(' $(OutDir)obj\\$(ProjectName)\\', file=F) + print(' $(ProjectName)_c', file=F) + if c.x64: + print(' .mexw64', file=F) + else: + print(' .mexw32', file=F) + print(' ', file=F) + for c in configs: + print(''' ''' % (c.name(), ), file=F) + print(' ', file=F) + if c.debug: + print(' MultiThreadedDebugDLL', file=F) + else: + print(' MultiThreadedDLL', file=F) +# print(' Level3', file=F) + #print(' $(MATLAB_ROOT)\extern\include\;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)', file=F) + # FIXME: This CUDA_PATH shouldn't be necessary + print(' $(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)', file=F) + print(' true', file=F) + if not c.x64: # /arch:SSE2 is implicit on x64 + print(' StreamingSIMDExtensions2', file=F) + if c.debug: + print(' Disabled', file=F) + else: + print(' MaxSpeed', file=F) +# print(' true', file=F) +# print(' true', file=F) +# print(' AnySuitable', file=F) +# print(' Speed', file=F) + d=' ' + if c.cuda: + d+="ASTRA_CUDA;" + d+="__SSE2__;" +# d+="DLL_EXPORTS;_CRT_SECURE_NO_WARNINGS;" + d+='%(PreprocessorDefinitions)' + print(d, file=F) + print(' true', file=F) +# print(' true', file=F) +# if c.debug: +# EditAndContinue ?? + print(' ', file=F) + print(' ', file=F) +# if not c.debug: +# print(' true', file=F) +# print(' true', file=F) + if c.x64: + print(' $(OutDir)$(ProjectName)_c.mexw64', file=F) + else: + print(' $(OutDir)$(ProjectName)_c.mexw32', file=F) + print(' %s.lib;libmex.lib;libmx.lib;libut.lib;%%(AdditionalDependencies)' % (c.target(), ), file=F) + l = ' '; + if c.x64: + l += '..\\..\\lib\\x64\\;..\\..\\bin\\x64\\' + else: + l += '..\\..\\lib\\win32\\;..\\..\\bin\\win32\\' + l += c.config() + if c.x64: + l += ';$(MATLAB_ROOT)\extern\lib\win64\microsoft' + else: + l += ';$(MATLAB_ROOT)\extern\lib\win32\microsoft' + l += ';%(AdditionalLibraryDirectories)' + l += '' + print(l, file=F) + print(' mex.def', file=F) + print(' true', file=F) + print(' ', file=F) + print(' ', file=F) + write_project11_end(P, F) + F.close() + +def write_main_filters11(): + P = P_astra + F = open(P["name"] + ".vcxproj.filters", "w") + print(bom + '', file=F) + print('', file=F) + print(' ', file=F) + for Filter in P_astra["filter_names"]: + L = P_astra["filters"][Filter][1:] + l = [ f for f in L if len(f) > 3 and f[-3:] == ".cu" ] + for f in l: + print(' ', file=F) + print(' ' + Filter + '', file=F) + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + for Filter in P_astra["filter_names"]: + L = P_astra["filters"][Filter][1:] + l = [ f for f in L if len(f) > 4 and f[-4:] == ".cpp" ] + for f in l: + print(' ', file=F) + print(' ' + Filter + '', file=F) + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + for Filter in P_astra["filter_names"]: + L = P_astra["filters"][Filter][1:] + l = [ f for f in L if len(f) > 2 and f[-2:] == ".h" ] + for f in l: + print(' ', file=F) + print(' ' + Filter + '', file=F) + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + for Filter in P_astra["filter_names"]: + L = P_astra["filters"][Filter][1:] + l = [ f for f in L if len(f) > 4 and f[-4:] == ".inl" ] + for f in l: + print(' ', file=F) + print(' ' + Filter + '', file=F) + print(' ', file=F) + print(' ', file=F) + print(' ', file=F) + for f in P["filter_names"]: + print(' ', file=F) + print(' {' + P["filters"][f][0] + '}', file=F) + print(' ', file=F) + print(' ', file=F) + print('', end="", file=F) + F.close() + +def write_project09_start(P, F): + print('', file=F) + print('', file=F) + print(r''' + + + ''', file=F) + +def write_project09_unused_tools(F): + print(r''' + + + + + + + + + + + + + + ''', file=F) + + +def write_main_project09(): + P = P_astra; + F = open(P["file09"], "w") + write_project09_start(P, F) + print(r''' + + ''', file=F) + print('\t', file=F) + for c in configs: + print('\t\t''', file=F) + write_project09_unused_tools(F) + print('\t\t\t', file=F) + print('\t\t\t', file=F) + print('\t\t\t', file=F) + print('\t\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('\t', file=F) + print(r''' + + + ''', file=F) + curgroup = None + for Filter in P["filter_names"]: + if "\\" not in Filter: + continue + # TODO + [ group, subgroup ] = Filter.split("\\") + if group != curgroup: + if curgroup != None: + print('\t\t', file=F) + print('\t\t', file=F) + curgroup = group + print('\t\t\t', file=F) + for f in P["filters"][Filter][1:]: + print('\t\t\t\t', file=F) + if (("Cuda" in f) or ("cuda" in f)) and not (f[-2:] == ".h"): + for c in configs: + if not c.cuda: + print('\t\t\t\t\t', file=F) + print('\t\t\t\t\t\t 3 and f[-3:] == ".cu": + print('\t\t\t\t\t\t\tName="Cudart Build Rule"', file=F) + else: + print('\t\t\t\t\t\t\tName="VCCLCompilerTool"', file=F) + print('\t\t\t\t\t\t/>', file=F) + print('\t\t\t\t\t', file=F) + print('\t\t\t\t', file=F) + print('\t\t\t', file=F) + print('\t\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('', file=F) + F.close() + +def write_mex_project09(P): + F = open("matlab/mex/" + P["name"] + "_vc09.vcproj", "w") + write_project09_start(P, F) + print('\t', file=F) + print('\t', file=F) + print('\t', file=F) + for c in configs: + print('\t\t''', file=F) + write_project09_unused_tools(F) + print('\t\t\t', file=F) + print('\t\t\t', file=F) + print('\t\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('\t', file=F) + for f in P["files"]: + print('\t\t', file=F) + print('\t\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('\t', file=F) + print('', file=F) + +try: + open("../../src/AstraObjectManager.cpp", "r") +except IOError: + print("Run gen.py from the build/msvc directory", file=sys.stderr) + sys.exit(1) + +# Change directory to main dir +os.chdir("../..") + + +# HACK +P_astra["name"] = "astra_vc11" +write_sln(11) +write_main_project11() +write_main_filters11() +write_mex_project11(P0) +write_mex_project11(P1) +write_mex_project11(P2) +write_mex_project11(P3) +write_mex_project11(P4) +write_mex_project11(P5) +write_mex_project11(P6) + +# HACK +P_astra["name"] = "astra" + +write_sln(9) +write_main_project09() +write_mex_project09(P0) +write_mex_project09(P1) +write_mex_project09(P2) +write_mex_project09(P3) +write_mex_project09(P4) +write_mex_project09(P5) +write_mex_project09(P6) -- cgit v1.2.3 From 7f39622c23001b975efb6f61359d380c1f3f7984 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Fri, 20 Mar 2015 11:06:34 +0100 Subject: Add command line option to generate vc09/vc11/all files --- build/msvc/gen.py | 57 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 24 deletions(-) (limited to 'build') diff --git a/build/msvc/gen.py b/build/msvc/gen.py index 0eb306e..c770641 100644 --- a/build/msvc/gen.py +++ b/build/msvc/gen.py @@ -1051,6 +1051,14 @@ def write_mex_project09(P): print('\t', file=F) print('', file=F) + + +if (len(sys.argv) != 2) or (sys.argv[1] not in ["vc09", "vc11", "all"]): + print("Usage: python gen.py [vc09|vc11|all]", file=sys.stderr) + sys.exit(1) + + + try: open("../../src/AstraObjectManager.cpp", "r") except IOError: @@ -1060,29 +1068,30 @@ except IOError: # Change directory to main dir os.chdir("../..") +if sys.argv[1] in ["vc11", "all"]: + # HACK + P_astra["name"] = "astra_vc11" + write_sln(11) + write_main_project11() + write_main_filters11() + write_mex_project11(P0) + write_mex_project11(P1) + write_mex_project11(P2) + write_mex_project11(P3) + write_mex_project11(P4) + write_mex_project11(P5) + write_mex_project11(P6) -# HACK -P_astra["name"] = "astra_vc11" -write_sln(11) -write_main_project11() -write_main_filters11() -write_mex_project11(P0) -write_mex_project11(P1) -write_mex_project11(P2) -write_mex_project11(P3) -write_mex_project11(P4) -write_mex_project11(P5) -write_mex_project11(P6) - -# HACK -P_astra["name"] = "astra" +if sys.argv[1] in ["vc09", "all"]: + # HACK + P_astra["name"] = "astra" -write_sln(9) -write_main_project09() -write_mex_project09(P0) -write_mex_project09(P1) -write_mex_project09(P2) -write_mex_project09(P3) -write_mex_project09(P4) -write_mex_project09(P5) -write_mex_project09(P6) + write_sln(9) + write_main_project09() + write_mex_project09(P0) + write_mex_project09(P1) + write_mex_project09(P2) + write_mex_project09(P3) + write_mex_project09(P4) + write_mex_project09(P5) + write_mex_project09(P6) -- cgit v1.2.3 From dc391ca18771ad2e2270aeeb1c0a5ee14319a38a Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Thu, 19 Mar 2015 17:47:12 +0100 Subject: Add MSVC project files --- build/msvc/gen.py | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) (limited to 'build') diff --git a/build/msvc/gen.py b/build/msvc/gen.py index c770641..9f5e367 100644 --- a/build/msvc/gen.py +++ b/build/msvc/gen.py @@ -5,6 +5,10 @@ import os vcppguid = "8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942" # C++ project siguid = "2150E333-8FDC-42A3-9474-1A3956D46DE8" # project group +# to generate a new uuid: +# +# import uuid +# uuid.uuid4().__str__().upper() def create_mex_project(name, uuid11, uuid09): return { "type": vcppguid, "name": name, "file11": "matlab\\mex\\" + name + "_vc11.vcxproj", "file09": "matlab\\mex\\" + name + "_vc09.vcproj", "uuid11": uuid11, "uuid09": uuid09, "files": [] } @@ -19,6 +23,7 @@ P3 = create_mex_project("astra_mex_data3d", "0BEC029B-0929-4BF9-BD8B-9C9806A5206 P4 = create_mex_project("astra_mex_matrix", "9D041710-2119-4230-BCF2-5FBE753FDE49", "9D041710-2119-4230-BCF2-5FBE753FDE49") P5 = create_mex_project("astra_mex_projector", "4DD6056F-8EEE-4C9A-B2A9-923F01A32E97", "4DD6056F-8EEE-4C9A-B2A9-923F01A32E97") P6 = create_mex_project("astra_mex_projector3d", "F94CCD79-AA11-42DF-AC8A-6C9D2238A883", "F94CCD79-AA11-42DF-AC8A-6C9D2238A883") +P7 = create_mex_project("astra_mex_log", "03B833F5-4FD6-4FBE-AAF4-E3305CD56D2E", "CA2840B3-DA68-41B5-AC57-F5DFD20ED8F8") F_astra_mex = { "type": siguid, "name": "astra_mex", @@ -26,18 +31,22 @@ F_astra_mex = { "type": siguid, "file09": "astra_mex", "uuid11": "5E99A109-374E-4102-BE9B-99BA1FA8AA30", "uuid09": "33EF0AC5-B475-40BF-BAE5-67075B204D10", - "entries": [ P0, P1, P2, P3, P4, P5, P6 ] } + "entries": [ P0, P1, P2, P3, P4, P5, P6, P7 ] } P0["files"] = [ "astra_mex_c.cpp", "mexHelpFunctions.cpp", "mexHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", ] P1["files"] = [ "astra_mex_algorithm_c.cpp", "mexHelpFunctions.cpp", "mexHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", ] P2["files"] = [ "astra_mex_data2d_c.cpp", @@ -47,6 +56,8 @@ P2["files"] = [ "mexCopyDataHelpFunctions.h", "mexDataManagerHelpFunctions.cpp", "mexDataManagerHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", ] P3["files"] = [ "astra_mex_data3d_c.cpp", @@ -56,22 +67,38 @@ P3["files"] = [ "mexCopyDataHelpFunctions.h", "mexDataManagerHelpFunctions.cpp", "mexDataManagerHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", ] P4["files"] = [ "astra_mex_matrix_c.cpp", "mexHelpFunctions.cpp", "mexHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", ] P5["files"] = [ "astra_mex_projector_c.cpp", "mexHelpFunctions.cpp", "mexHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", ] P6["files"] = [ "astra_mex_projector3d_c.cpp", "mexHelpFunctions.cpp", "mexHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", ] +P7["files"] = [ +"astra_mex_log_c.cpp", +"mexHelpFunctions.cpp", +"mexHelpFunctions.h", +"mexInitFunctions.cpp", +"mexInitFunctions.h", +] + P_astra["filter_names"] = [ @@ -168,7 +195,7 @@ P_astra["filters"]["Global & Other\\source"] = [ "src\\Config.cpp", "src\\Fourier.cpp", "src\\Globals.cpp", -"src\\Logger.cpp", +"src\\Logging.cpp", "src\\PlatformDepSystemCode.cpp", "src\\Utilities.cpp", "src\\XMLDocument.cpp", @@ -295,10 +322,11 @@ P_astra["filters"]["Global & Other\\headers"] = [ "1c52efc8-a77e-4c72-b9be-f6429a87e6d7", "include\\astra\\AstraObjectFactory.h", "include\\astra\\AstraObjectManager.h", +"include\\astra\\clog.h", "include\\astra\\Config.h", "include\\astra\\Fourier.h", "include\\astra\\Globals.h", -"include\\astra\\Logger.h", +"include\\astra\\Logging.h", "include\\astra\\PlatformDepSystemCode.h", "include\\astra\\Singleton.h", "include\\astra\\TypeList.h", @@ -379,7 +407,7 @@ for f in P_astra["filters"]: P_astra["files"].extend(P_astra["filters"][f][1:]) P_astra["files"].sort() -projects = [ P_astra, F_astra_mex, P0, P1, P2, P3, P4, P5, P6 ] +projects = [ P_astra, F_astra_mex, P0, P1, P2, P3, P4, P5, P6, P7 ] bom = "\xef\xbb\xbf" @@ -1081,6 +1109,7 @@ if sys.argv[1] in ["vc11", "all"]: write_mex_project11(P4) write_mex_project11(P5) write_mex_project11(P6) + write_mex_project11(P7) if sys.argv[1] in ["vc09", "all"]: # HACK @@ -1095,3 +1124,4 @@ if sys.argv[1] in ["vc09", "all"]: write_mex_project09(P4) write_mex_project09(P5) write_mex_project09(P6) + write_mex_project09(P7) -- cgit v1.2.3