2424import com .duy .ccppcompiler .compiler .model .OutputScope ;
2525import com .duy .ccppcompiler .compiler .shell .ArgumentBuilder ;
2626import com .duy .ccppcompiler .compiler .shell .CommandResult ;
27+ import com .duy .ccppcompiler .compiler .shell .GccArgumentBuilder ;
2728import com .duy .ccppcompiler .compiler .shell .Shell ;
2829import com .duy .ccppcompiler .packagemanager .Environment ;
2930import com .duy .common .DLog ;
@@ -72,6 +73,8 @@ public CommandResult compile(File[] sourceFiles, ILogger logger) {
7273 argumentBuilder .addFlags (args );
7374
7475 final String cmd = argumentBuilder .build ();
76+ String debugStr = cmd .replaceAll ("\\ s+" , "\n " );
77+ if (DLog .DEBUG ) DLog .d (TAG , "debugStr = \n " + debugStr );
7578 if (logger != null ) {
7679 logger .verbose ("Compiler argument: " + cmd );
7780 }
@@ -93,7 +96,7 @@ protected void clean() {
9396 }
9497
9598 private String buildArgs (File [] sourceFiles ) {
96- ArgumentBuilder args = new ArgumentBuilder ();
99+ GccArgumentBuilder args = new GccArgumentBuilder ();
97100 for (File sourceFile : sourceFiles ) {
98101 args .addFlags (sourceFile .getAbsolutePath ());
99102 }
@@ -118,13 +121,15 @@ private String buildArgs(File[] sourceFiles) {
118121 return args .build ();
119122 }
120123
121- private void resolveLdFlagsFromSource (ArgumentBuilder args , File [] sourceFiles ) {
124+ private void resolveLdFlagsFromSource (GccArgumentBuilder args , File [] sourceFiles ) {
122125 LinkerFlagsDetector detector = LinkerFlagsDetector .INSTANCE ;
123126 try {
124- final Set <String > detect = detector .detect (sourceFiles );
125- args .addFlags (detect );
127+ final Set <String > detected = detector .detect (sourceFiles );
128+ for (String f : detected ) {
129+ args .addFlag (GccArgumentBuilder .Type .LD_FLAG , f );
130+ }
126131 } catch (IOException e ) {
127- e . printStackTrace ();
132+ //unexpected
128133 }
129134 }
130135
@@ -134,9 +139,10 @@ protected void addUserSettingFlags(ArgumentBuilder args) {
134139
135140 protected abstract String getCompilerProgram ();
136141
137- private void addDefaultLdFlags (ArgumentBuilder args ) {
142+ private void addDefaultLdFlags (GccArgumentBuilder args ) {
138143 //lib math and lib log
139- args .addFlags ("-lm" , "-llog" );
144+ args .addFlag (GccArgumentBuilder .Type .LD_FLAG , "-lm" );
145+ args .addFlag (GccArgumentBuilder .Type .LD_FLAG , "-llog" );
140146 }
141147
142148 private void buildExecutableFlags (ArgumentBuilder args , File [] sourceFiles ) {
@@ -169,7 +175,7 @@ private void buildNativeActivityFlags(ArgumentBuilder args, File[] sourceFiles)
169175 .addFlags ("-o" , outputScope .getBinaryFile ().getAbsolutePath ());
170176 }
171177
172- private void buildSDLActivity (ArgumentBuilder args , File [] sourceFiles ) {
178+ private void buildSDLActivity (GccArgumentBuilder args , File [] sourceFiles ) {
173179 File source = sourceFiles [0 ];
174180 String nameNoExt = source .getName ().substring (0 , source .getName ().lastIndexOf ("." ));
175181
0 commit comments