Browse Source

Fix Database subsystem on Emscripten build.
[ci only: Emscripten]

Yao Wei Tjong 姚伟忠 10 years ago
parent
commit
7d6f0ffeab

+ 5 - 1
Source/Samples/41_DatabaseDemo/DatabaseDemo.cpp

@@ -47,6 +47,8 @@ DatabaseDemo::DatabaseDemo(Context* context) :
 
 
 DatabaseDemo::~DatabaseDemo()
 DatabaseDemo::~DatabaseDemo()
 {
 {
+    // Although the managed database connection will be disconnected by Database subsystem automatically in its destructor,
+    // it is a good practice for a class to balance the number of connect() and disconnect() calls.
     GetSubsystem<Database>()->Disconnect(connection_);
     GetSubsystem<Database>()->Disconnect(connection_);
 }
 }
 
 
@@ -81,7 +83,9 @@ void DatabaseDemo::Start()
     OpenConsoleWindow();
     OpenConsoleWindow();
 
 
     // Connect to a temporary in-memory database
     // Connect to a temporary in-memory database
-    connection_ = GetSubsystem<Database>()->Connect("file://");
+    Database* database = GetSubsystem<Database>();
+    database->SetUsePooling(false);
+    connection_ = database->Connect("file://");
 
 
     // Subscribe to database cursor event to loop through query resultset
     // Subscribe to database cursor event to loop through query resultset
     SubscribeToEvent(connection_, E_DBCURSOR, HANDLER(DatabaseDemo, HandleDbCursor));
     SubscribeToEvent(connection_, E_DBCURSOR, HANDLER(DatabaseDemo, HandleDbCursor));

+ 4 - 0
Source/ThirdParty/SQLite/CMakeLists.txt

@@ -25,6 +25,10 @@ set (TARGET_NAME SQLite)
 
 
 # https://www.sqlite.org/compile.html#use_uri
 # https://www.sqlite.org/compile.html#use_uri
 add_definitions (-DSQLITE_USE_URI=1)
 add_definitions (-DSQLITE_USE_URI=1)
+# Do not use pthread and dl libraries for Emscripten
+if (EMSCRIPTEN)
+    add_definitions (-DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION)
+endif ()
 
 
 # Define source files
 # Define source files
 set (SOURCE_FILES src/sqlite3.c)
 set (SOURCE_FILES src/sqlite3.c)