Skip to content

Commit

Permalink
[cppRuntime] fix for ModelicaExternal C missing objects, fix for miss…
Browse files Browse the repository at this point in the history
…sing status return of omc c-api init function, deactivated threads in c-api test
  • Loading branch information
niklwors authored and adrpo committed Jul 12, 2019
1 parent 53467af commit 3479eb5
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
Expand Up @@ -9,8 +9,8 @@ include_directories(${MODELICAEXTERNALCDIR})
add_definitions(-DDUMMY_FUNCTION_USERTAB) # yet an extra flag

add_library(${ModelicaExternalName} STATIC ${MODELICAEXTERNALCDIR}/ModelicaFFT.c ${MODELICAEXTERNALCDIR}/ModelicaInternal.c ${MODELICAEXTERNALCDIR}/ModelicaRandom.c ${MODELICAEXTERNALCDIR}/ModelicaStrings.c)
add_library(${ModelicaTablesName} STATIC ${MODELICAEXTERNALCDIR}/ModelicaStandardTables.c)
add_library(${ModelicaIOName} STATIC ${MODELICAEXTERNALCDIR}/ModelicaIO.c)
add_library(${ModelicaTablesName} STATIC ${MODELICAEXTERNALCDIR}/ModelicaStandardTables.c ${MODELICAEXTERNALCDIR}/ModelicaStandardTablesUsertab.c)
add_library(${ModelicaIOName} STATIC ${MODELICAEXTERNALCDIR}/ModelicaIO.c ${MODELICAEXTERNALCDIR}/snprintf.c)
add_library(${ModelicaMatIOName} STATIC ${MODELICAEXTERNALCDIR}/ModelicaMatIO.c)
add_library(${LibZName} STATIC ${MODELICAEXTERNALCDIR}/zlib/adler32.c ${MODELICAEXTERNALCDIR}/zlib/compress.c ${MODELICAEXTERNALCDIR}/zlib/crc32.c ${MODELICAEXTERNALCDIR}/zlib/deflate.c ${MODELICAEXTERNALCDIR}/zlib/gzclose.c ${MODELICAEXTERNALCDIR}/zlib/gzlib.c ${MODELICAEXTERNALCDIR}/zlib/gzread.c ${MODELICAEXTERNALCDIR}/zlib/gzwrite.c ${MODELICAEXTERNALCDIR}/zlib/infback.c ${MODELICAEXTERNALCDIR}/zlib/inffast.c ${MODELICAEXTERNALCDIR}/zlib/inflate.c ${MODELICAEXTERNALCDIR}/zlib/inftrees.c ${MODELICAEXTERNALCDIR}/zlib/trees.c ${MODELICAEXTERNALCDIR}/zlib/uncompr.c ${MODELICAEXTERNALCDIR}/zlib/zutil.c)

Expand Down
5 changes: 4 additions & 1 deletion OMCompiler/SimulationRuntime/cpp/omcCAPI/src/OMC.cpp
Expand Up @@ -57,14 +57,17 @@ extern "C" {
omc_Main_readSettings(threadData, mmc_mk_nil());
CP_TD();
MMC_CATCH_TOP(return -1)


std::string options = "+d=execstat +simCodeTarget=Cpp +target=" + std::string(compiler);

std::string options = "+d=execstat --simCodeTarget=Cpp --target=" + std::string(compiler);
std::cout << "options " << options << "\n";
if (SetCommandLineOptions(omcData, options.c_str()) == -1)
{
std::cout << "could not set OpenModelica options: " << options << std::endl;
return -1;
}
return 1;
}

int SetCommandLineOptions(data* omcData, const char* expression)
Expand Down
15 changes: 10 additions & 5 deletions OMCompiler/SimulationRuntime/cpp/omcCAPI/src/OMCTest.cpp
Expand Up @@ -14,11 +14,12 @@

void runTest(std::string testfolder, std::string omhome)
{

InitMetaOMC();
/*threads test disabled:
GC_stack_base sb;
GC_get_stack_base(&sb);
GC_register_my_thread(&sb);

*/
int status = 0;
char *change_dir_results = 0, *mkDirResults = 0, *version = 0, *errorMsg2 = 0, *simulateResult = 0, *clear = 0;

Expand Down Expand Up @@ -118,20 +119,21 @@ void runTest(std::string testfolder, std::string omhome)
else
std::cout << "..failed" << std::endl;

GC_unregister_my_thread();
/*threads test disabled: GC_unregister_my_thread(); */
}

#define MAX_THREADS 4

int main(int argc, const char* argv[])
{
std::thread threads[MAX_THREADS];
//threads test disabled: std::thread threads[MAX_THREADS];
int i = 0;

std::cout << "Test OMC C-API dll ..." << std::endl;
InitMetaOMC();
GC_allow_register_threads();
//threads test disabled: GC_allow_register_threads();

/*threads test disabled:
for (i = 0; i < MAX_THREADS; i++)
{
std::string dir = std::string("./tmp") + std::to_string(i);
Expand All @@ -141,5 +143,8 @@ int main(int argc, const char* argv[])
for (i = 0; i < MAX_THREADS; i++)
if (threads[i].joinable())
threads[i].join();
*/
runTest("./tmp", "");
}

0 comments on commit 3479eb5

Please sign in to comment.