From 44e2a7781a10a6c40fe267a3d4195b3fbd8a871b Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Sun, 4 Jun 2017 12:29:28 +0200 Subject: [PATCH] add MDEmbedTest proj --- Crow.sln | 6 +++ MDEmbedTest/MDEmbedTest.cproj | 63 +++++++++++++++++++++++++++ MDEmbedTest/Makefile | 31 ++++++++++++++ MDEmbedTest/main.c | 78 ++++++++++++++++++++++++++++++++++ MDEmbedTest/main.o | Bin 0 -> 14056 bytes MDEmbedTest/mdembed | Bin 0 -> 15016 bytes MDEmbedTest/test.cs | 11 +++++ MDEmbedTest/test.exe | Bin 0 -> 3072 bytes MDEmbedTest/test2.cs | 11 +++++ MDEmbedTest/test2.exe | Bin 0 -> 3584 bytes testDrm/TestCrow.cs | 22 ++++------ 11 files changed, 209 insertions(+), 13 deletions(-) create mode 100644 MDEmbedTest/MDEmbedTest.cproj create mode 100644 MDEmbedTest/Makefile create mode 100644 MDEmbedTest/main.c create mode 100644 MDEmbedTest/main.o create mode 100755 MDEmbedTest/mdembed create mode 100644 MDEmbedTest/test.cs create mode 100755 MDEmbedTest/test.exe create mode 100644 MDEmbedTest/test2.cs create mode 100755 MDEmbedTest/test2.exe diff --git a/Crow.sln b/Crow.sln index 446bb1dd..72677865 100644 --- a/Crow.sln +++ b/Crow.sln @@ -15,6 +15,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DRI.net", "..\DRI.net\DRI.n EndProject Project("{2857B73E-F847-4B02-9238-064979017E93}") = "libcrow", "..\libcrow\libcrow.cproj", "{6CD55032-B8D6-4238-AA91-F9145E1217D4}" EndProject +Project("{2857B73E-F847-4B02-9238-064979017E93}") = "MDEmbedTest", "MDEmbedTest\MDEmbedTest.cproj", "{A41EEF9F-6F0C-402E-9AD0-C23B7A32B05D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -37,6 +39,10 @@ Global {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Release|Any CPU.Build.0 = Release|Any CPU {A37A7E14-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A37A7E14-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A41EEF9F-6F0C-402E-9AD0-C23B7A32B05D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A41EEF9F-6F0C-402E-9AD0-C23B7A32B05D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A41EEF9F-6F0C-402E-9AD0-C23B7A32B05D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A41EEF9F-6F0C-402E-9AD0-C23B7A32B05D}.Release|Any CPU.Build.0 = Release|Any CPU {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.ActiveCfg = Release|Any CPU {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.Build.0 = Release|Any CPU diff --git a/MDEmbedTest/MDEmbedTest.cproj b/MDEmbedTest/MDEmbedTest.cproj new file mode 100644 index 00000000..3c209afc --- /dev/null +++ b/MDEmbedTest/MDEmbedTest.cproj @@ -0,0 +1,63 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {A41EEF9F-6F0C-402E-9AD0-C23B7A32B05D} + + + + C + Bin + 0.5 + + + true + bin\Debug + true + MDEmbedTest + Bin + DEBUG MONODEVELOP + . + + + + + + + + + bin\Release + true + MDEmbedTest + Bin + 3 + MONODEVELOP + . + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MDEmbedTest/Makefile b/MDEmbedTest/Makefile new file mode 100644 index 00000000..631fa272 --- /dev/null +++ b/MDEmbedTest/Makefile @@ -0,0 +1,31 @@ +export PKG_CONFIG_PATH = /opt/mono/lib/pkgconfig + +CC = gcc +CFLAGS = -Wall -Wextra -O2 -g -DDEBUG +LDFLAGS = + +TARGET = mdembed +SOURCES = main.c +OBJECTS = $(SOURCES:.c=.o) + +CFLAGS += `pkg-config --cflags --libs mono-2` +CFLAGS += `pkg-config --cflags --libs cairo` +CFLAGS += `pkg-config --cflags --libs gl` + +.PHONY: all +all: ${TARGET} test.exe test2.exe + +$(TARGET): $(OBJECTS) + $(CC) $(CFLAGS) ${LDFLAGS} -o $(TARGET) $(OBJECTS) +test.exe : test.cs + mcs -unsafe test.cs +test2.exe : test2.cs + mcs -unsafe test2.cs + +.PHONY: clean +clean: + -rm -f ${TARGET} ${OBJECTS} test.exe test2.exe + +.PHONY: run +run: + -./${TARGET} test.exe \ No newline at end of file diff --git a/MDEmbedTest/main.c b/MDEmbedTest/main.c new file mode 100644 index 00000000..45a01cd3 --- /dev/null +++ b/MDEmbedTest/main.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include + +/* + * Very simple mono embedding example. + * Compile with: + * gcc -o teste teste.c `pkg-config --cflags --libs mono-2` -lm + * mcs test.cs + * Run with: + * ./teste test.exe + */ + +static MonoString* +gimme () { + return mono_string_new (mono_domain_get (), "All your monos are belong to us!"); +} + +static void main_function (MonoDomain *domain, const char *file, int argc, char** argv) +{ + MonoAssembly *assembly; + MonoAssembly *a2; + + assembly = mono_domain_assembly_open (domain, file); + if (!assembly) + exit (2); + a2 = mono_domain_assembly_open (domain, "test2.exe"); + if (!a2) + exit (2); + /* + * mono_jit_exec() will run the Main() method in the assembly. + * The return value needs to be looked up from + * System.Environment.ExitCode. + */ + mono_jit_exec (domain, assembly, argc, argv); + mono_jit_exec (domain, a2, argc, argv); +} + +int +main(int argc, char* argv[]) { + MonoDomain *domain; + const char *file; + int retval; + + if (argc < 2){ + fprintf (stderr, "Please provide an assembly to load\n"); + return 1; + } + file = argv [1]; + + /* + * Load the default Mono configuration file, this is needed + * if you are planning on using the dllmaps defined on the + * system configuration + */ + mono_config_parse (NULL); + /* + * mono_jit_init() creates a domain: each assembly is + * loaded and run in a MonoDomain. + */ + domain = mono_jit_init (file); + /* + * We add our special internal call, so that C# code + * can call us back. + */ + mono_add_internal_call ("MonoEmbed::gimme", gimme); + + main_function (domain, file, argc - 1, argv + 1); + + retval = mono_environment_exitcode_get (); + + mono_jit_cleanup (domain); + return retval; +} + + diff --git a/MDEmbedTest/main.o b/MDEmbedTest/main.o new file mode 100644 index 0000000000000000000000000000000000000000..eb52af1381b0b026919fe5636d4b75d40458d38c GIT binary patch literal 14056 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 X3@ZD_J;AI0Qy46iS4>sPrNV84LH literal 0 HcmV?d00001 diff --git a/MDEmbedTest/mdembed b/MDEmbedTest/mdembed new file mode 100755 index 0000000000000000000000000000000000000000..db17b65d5150956c8b85b1650090023ae87f4c9f GIT binary patch literal 15016 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 literal 0 HcmV?d00001 diff --git a/MDEmbedTest/test.cs b/MDEmbedTest/test.cs new file mode 100644 index 00000000..6a24f927 --- /dev/null +++ b/MDEmbedTest/test.cs @@ -0,0 +1,11 @@ +using System; +using System.Runtime.CompilerServices; + +class MonoEmbed { + [MethodImplAttribute(MethodImplOptions.InternalCall)] + unsafe extern static string gimme(); + + static void Main() { + Console.WriteLine (gimme ()); + } +} diff --git a/MDEmbedTest/test.exe b/MDEmbedTest/test.exe new file mode 100755 index 0000000000000000000000000000000000000000..b49eb85694605ca74ec0754fce5f3ae1b0caaa23 GIT binary patch literal 3072 zcmeHI-A^1<6#vb3AwY#`4F*CNOyt8Xv*&F?J{L{W-~L3 zU}ELLniyZ&{sI0C#uz1jBz^F;J{l7f!-Ma>8)N;QJNpGT%CqTN?#DUjchCKuGxuJW z-@b=a0FrEv9|H#*MRL0T_imr=ftSA-z?Z#`Mh=XnM4~7tRz=yz_*RD8_&aH@^e^X|E}&MJkXdJ8Rs*oOWe;@23AdR ze|+|e)--hRKFT;l{f744$89`EtrvoM7J057*7FhFzk<`OhJ_SfWWL>)Kyn|)#HTKK zH039J(VPO8m;G|xRada=d;Wa2q{>+Hc2wZpa*8Ea&GPQO9adZduw3nNvv^2)9U zPP7Nhj{E?#z8Cs#(~Awd)RN;VtdwpmJ3_^&Ruz_uj)zEv5w6$0$f+`PwN{LrlH)Se zKlW&VEI~Q03i2x0acmW$8rpu~Iwc*;QoD+W&eZwrYz*K1<-wVSPlvv`bKdx1LhMFT zYM+E*4DgIeGtNon3yGnPpjf-+d-J=tszr|P6}AHZz0lbI%rf>rI+m%ms)DK$hJ=N! z^xL);`?T4lmp0c`AoyuHx%{Qg*}5Cm12yfbdK47hw7FU@xsH8R?G^lOeLHHAu*WWc4~~o&tbDzzGw7&{r)@a!`Z`6THo*>)tcf*nVW6BbJo1K zz|C1dnBP_UlW4+9S!Gx56kqi7Fmrl#vd++V>umgrb}Wfcd*%st0m<8OBS)uPsD|t( zvYf5+jNfEGkL#Q*Vg=WzFS37wbCK_pzyH;|ecI6IUTciaJKO1#dv7pm5dq^kd_NRp zdbkC-9elrdMt}mnMOs7pi-?Hxsfm1u&y$BdN(MPaL^-rqo)GCfjmaQ`Nyg3~ixPX_ zCB85QW*M)_pW^C>yFh=c(GFit@4v@viy9|;n`~)~X)>QsNTTrzww+D&425iiwt<8 literal 0 HcmV?d00001 diff --git a/MDEmbedTest/test2.cs b/MDEmbedTest/test2.cs new file mode 100644 index 00000000..eb23a837 --- /dev/null +++ b/MDEmbedTest/test2.cs @@ -0,0 +1,11 @@ +using System; +using System.Runtime.CompilerServices; + +class MonoEmbed { + [MethodImplAttribute(MethodImplOptions.InternalCall)] + unsafe extern static string gimme(); + + static void Main() { + Console.WriteLine ("test2 => " + gimme ()); + } +} diff --git a/MDEmbedTest/test2.exe b/MDEmbedTest/test2.exe new file mode 100755 index 0000000000000000000000000000000000000000..c98fc48a815bb22ee6cdab437431eb5cd29c89cb GIT binary patch literal 3584 zcmeHJ&2Lmy6#u=UZAy_zi9%?icu8xl*t`t1Sevvs(3THrp<#xC#)Q6ky$sL3d2e#x z8*ELKN&HB3C0iFH{s%6M5~B;YCL}J5alwL>ap%SbaUuTBeKVa-C5Anm={@(Jk9+R# zocrE+U3~is>;TZi@$eyVo3l{S^8aT|n)5GypT{>l?;gDEEZjX2!amXN6y*h^aFj=$siq&4T_`4Axv?~ zWw^Pr_+>_ugLJ`@{#;4h0D{>+JTLV+1y674m#&on;SE!U&+kn&W1hw5H zbtMV59C}e#z-3;CLzz>n`V=0M4&+9OaNy9gVTAf9QS=EL7-g`5Lj+KI^MqrgXYj61 zxCM8-Fn)MS4(LTl-p{SW9|9@oUnmckQWHegL_AJ2*nZJnEMbLf-Y$kuT|6_#xlZ{H zkxztig|m>joGJr5Mflqp$G$AL-ppp7{q|aNZV%w67Ro+62bYDI<8#u7w=7??{3CoN zQCoglR)ZLzW)F1^mXugO-G9tVvc}*|80@8dS&4WP>lmW66XLT67r1)}9KuUGxDZc{JK|4|m#2V0tlLZG`$57UL+MuT}IaE=Je239bfS zCDgNgCy%GBaix)Jls1x7*W8l!8zx9M;QDE7kX=E`h}k&uy;P(Q7;6M#`(&- z+D}mpYBh~TFNl!pBt3!)jVKLjJgHXq(x4KAjQpP?TTZTc1)(-2ZLSBtPEbqy*n~kP z3+C!|4LqAdBSDHIP?%wzl+E|AJMQp}U+*3Na_QS!zu$Q9Id&*GJq~TX$mR3-9ym^( z&!PgVEUe%;sgG>D_}H50#=IL%wG)BJc_J=`U2YC)3FE!iwmN4J^O zm};XQQ_I?j|BO8A{EeyEMwm8?o{4lLHC{NTmKv2X@XzXva=fOanabp(cho=n+Tp43 z30-)7YOhny4VKn|IwSGYSbK(Z`oDYso#mm4`=51g8V`m$LSEi&)seeaVzYE*Ha7F? z+Fq80thKuu%6rH!!b?y^yL!r=gbFyepR&I;yR*%DTj3FU@sn@IC?Kx<^}H}G}OeYOOLm{NKL)K?!7=?CjmKmn7CUBCn?EA)%=)yE&)GiaTO9Q+oZ?$x$9FcdEz{TV ztWGWkeiu4JV)xNssv-T+aQ2vg2SKN60;3kk0{yDiOERis!y>8T8Y67Q+wsdPyUKkv z?lV}k*=N4f{DL{WTd8W*R#wh$=PGEVV*Iv~XWiT7YTfFx+AVQ!j8!z?)2o9#i=Scc a_Ss$)soPU}%nGRN|1c%5>r;B-D)2AyUs0+6 literal 0 HcmV?d00001 diff --git a/testDrm/TestCrow.cs b/testDrm/TestCrow.cs index bc6ba00d..552b7198 100644 --- a/testDrm/TestCrow.cs +++ b/testDrm/TestCrow.cs @@ -34,7 +34,7 @@ namespace testDrm public class TestCrow { //const string lib = "/mnt/data2/devel/crow/libcrow/bin/Debug/libcrow.so"; - const string lib = "/home/jp/devel/testsharedlib/bin/Debug/libcrow.so"; + const string lib = "libcrow.so"; [StructLayout(LayoutKind.Sequential)] public struct testStruct { @@ -48,26 +48,22 @@ namespace testDrm public int a = 10,b=20; } - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] - internal static extern void testAppDomain(); - - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] - internal static extern int gimmePI (ref testStruct t); - [MethodImplAttribute(MethodImplOptions.InternalCall)] - internal static extern int gimme (ref testStruct t); - - [MethodImplAttribute(MethodImplOptions.InternalCall)] - public extern object UnsafeGetValue (object obj); + unsafe extern static string gimme(); + [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + internal static extern void registerICall (); static void Main(){ - using (Interface iface = new Interface ()) { + registerICall (); + Console.WriteLine (gimme()); + + /*using (Interface iface = new Interface ()) { Console.WriteLine ("is dirty: {0}", iface.IsDirty); iface.ProcessResize (new Rectangle (0, 0, 1024, 768)); iface.LoadInterface ("#testDrm.ui.go.crow"); iface.Update (); iface.DumpTo ("/home/jp/test.png"); - } + }*/ } } } -- 2.47.3