SQLiteSupport module currently broken

Hmm, it looks like there is something wrong with the launcher version. I’ll get it myself and try to debug there.

I’m working on Perforce versions, so there can be our difference.

And yes – UE4Editor-SQLiteSupport.lib and dll are building on my machines.

Thanks,

Jarek

Thanks for that Jarek. I managed to get one of the SQLite plugins to work so I’ll use that for now, but it’d be cool the be able to use the official version :slight_smile:

I’ve just upgraded to 4.7.2, now the UE4Editor-SQLiteSupport.lib library is being built and it’s working as expected!
I’m still using GitHub source built engine.

Weird, I’ve been using 4.7.2 this whole time, albeit the launcher version. Jarek, is there any more news regarding this bug?

Sorry for the long response, but recently I hadn’t had time to look into it.

Here’s the problem:

SQLiteSupport is an optional module that just wraps sqlite to our database abstraction. In order to use it one needs to compile the module with linking statically sqlite library. To do this you need to have a source code version.

On the other hand the Launcher version is the binary version of UE4.

So to use SQLite, download the sources of UE4 and compile your project with SQLiteSupport according to the steps in README with the source version.

Sorry about the confusion and I guess we need to emit a proper error in binary builds that says so.

Jarek

Is SQLSupport supposed to generate when you build the sqlite project? I only get sqlite.lib.

When you build sqlite project, it generates the SQLite lib.
The SQLiteSupport module will only be built a) if you include it as a dependency in your project and b) if it finds the SQLite lib (SQLiteSupport looks for the SQLite lib as a prerequisite), but it will automatically build if both those conditions are true when you build the project that lists SQLiteSupport as a dependency.

Ah, I see. Probably a dumb question but how do I include it as a dependency once I have the source all setup?

alrighty, thanks

You need to put “SQLiteSupport” in Public/PrivateDependencyModuleNames in YourModule.Build.cs .

Now, two weeks later, we have come full circle to the original problem :slight_smile:

In my project, both of those conditions were true. SQLiteSupport was listed as a dependency, and the sqlite lib had been downloaded and built. I still received the linker error in the original post. From what Jarek said, using a version of UE4 built from source is mandatory for the use of this module, so that might have been my problem (I think I tried that, but I may be misremembering). However, we had another guy commenting that he was getting the same issue, despite having the library build, and he claimed to be using the source version.

Can someone verify that they can reproduce the issue, and that this fix works? I won’t be able to try it until I get home from work.

Okay, this definitely doesn’t work. I am still getting the linker error, exactly as before. Here is what I’m doing:

  1. Clone a fresh copy of UE4 from github.
  2. Build the sqlite libs.
  3. Build the engine.
  4. Create a new project, and a test C++ class.
  5. Add SQLiteSupport to the dependency list.
  6. Include an SQLiteSupport header file in my class.
  7. Build my project.

This fails just as it always has for me. Has somebody else tested this method and confirm it works? Am I leaving out a step?

  1. What’s the error?
  2. Which branch have you synced?
  3. Have you fixed the earlier problem we were mentioning? I.e. Replacing inclusiong of SQLiteSupportPrivatePCH.h to SQLiteSupport.h in SQLiteDatabaseConnection.h?
  1. Same error as in the original bug report I made here, but with the file path changed to the directory where I have my source build of the engine. “Cannot open input file”.
  2. I am on the “release” branch
  3. I did fix that, yes. Sorry, I should have mentioned that in my list of steps above. I did that just before building my project (between steps 6 and 7). If I don’t do it, then the project fails to compile altogether, and the linker error never has a to occur.

Alright, I’ll sync it myself and verify.

Btw. thanks a lot for your involvement! :slight_smile:

Hmm, works here.

What’s your current head hash?

My is 5d0665efb95342d2e28aa10d324dada0908bb6cd

That is mine as well. It’s the commit with the 4.7.3-release tag.

It might be worth attaching a sample project that Jarek can use to repro, if you have a few minutes to create such a thing Sirrus.
@Jarek - Would you like me to make the PrivatePCH and ‘more informative error when trying to build SQLiteSupport’ changes and submit another PR? Or have you already handled those internally?

Woah! I just recompiled everything, including the engine, and now I see the SQLiteSupport library being built. I don’t know what I did differently though. Maybe it’s the fact that I rebuilt the engine after opening the solution file for my project, rather than the solution file generated for building the engine standalone?

In other words, my steps changed to:

  1. Clone a fresh copy of UE4 from github.

  2. Build the sqlite libs.

  3. Build the engine.

  4. Create a new project, and a test C++ class.

  5. Add SQLiteSupport to the dependency list.

  6. Include an SQLiteSupport header file in my class.

7. Rebuild the engine.

  1. Build my project