aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--CMakeLists.txt45
-rw-r--r--baseconfig90
-rw-r--r--cmake/VendorConfig.cmake49
-rw-r--r--doc/Building.asciidoc9
-rw-r--r--lib/configuration/defaults.h.in14
-rw-r--r--linux/.config52
-rw-r--r--plugins/ConfigurationEditor/CMakeLists.txt4
-rw-r--r--plugins/ProfileEditor/CMakeLists.txt4
-rw-r--r--src/CMakeLists.txt38
-rw-r--r--vendor.cmake61
-rw-r--r--windows/.config52
12 files changed, 288 insertions, 133 deletions
diff --git a/.gitignore b/.gitignore
index b12cae4..2ae32dd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,5 @@ build*
lang/*.qm
test/plugins.d
-3rd-party/*/.git
-3rd-party/*/examples
+.config.old
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 074e736..f959a8d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,47 +1,29 @@
cmake_minimum_required(VERSION 3.10.0)
project(smolbote)
+# add cmake/ to module path
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
include(FeatureSummary)
-
-# Options
-option(Feature_ClangLibCpp "Use libc++ over stdlibc++" OFF)
-option(Feature_Plasma "Enable Plasma integration" OFF)
-option(Feature_Breakpad "Enable Breakpad crash reports" OFF)
-
-option(Devel_QtDeprecated "Enable Qt deprecation warnings" ON)
-option(Devel_Tests "Enable automatic testing" OFF)
-
-set(Vendor "${CMAKE_SOURCE_DIR}/vendor.cmake" CACHE FILEPATH "vendor configuration path")
-include(${Vendor})
+include(VendorConfig)
# Libraries
find_package(Qt5 5.11.0 COMPONENTS Core Widgets WebEngineWidgets REQUIRED)
find_package(Boost 1.66 COMPONENTS program_options REQUIRED)
-if(Feature_Plasma)
+if(CONFIG_USEPLASMA)
find_package(ECM 1.6.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
find_package(KF5 "5.6.0" COMPONENTS Wallet WindowSystem REQUIRED)
-endif(Feature_Plasma)
+endif(CONFIG_USEPLASMA)
-if(Feature_Breakpad)
+if(CONFIG_USEBREAKPAD)
find_package(Threads REQUIRED)
add_subdirectory(3rd-party/breakpad)
-endif(Feature_Breakpad)
+endif(CONFIG_USEBREAKPAD)
# Global C++ settings
set(CMAKE_CXX_STANDARD 17)
-if(Devel_QtDeprecated)
- add_definitions(-DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050900)
-endif(Devel_QtDeprecated)
-
-# link to libc++
-if (Feature_ClangLibCpp)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
-endif (Feature_ClangLibCpp)
-
# configure a header file to pass version information
configure_file("${PROJECT_SOURCE_DIR}/src/version.h.in" "${PROJECT_BINARY_DIR}/src/version.h")
@@ -58,26 +40,23 @@ add_subdirectory(lib/urlfilter)
add_subdirectory(plugins/ProfileEditor)
add_subdirectory(plugins/ConfigurationEditor)
-# browser source code
add_subdirectory(src)
-if(Devel_Tests)
+if(CONFIG_TESTS)
enable_testing()
find_package(Qt5 COMPONENTS Test REQUIRED)
add_subdirectory(test)
-endif(Devel_Tests)
+endif(CONFIG_TESTS)
# Summarize
message(STATUS "=== Configuration summary ===")
-
-message(STATUS "Building ${poi_exe} ${poi_Build}")
-message(STATUS "vendor.cmake: ${Vendor}")
-
+message(STATUS "Building ${CONFIG_POI_NAME} (${CONFIG_POI_EXE}) ${poi_Build}")
message(STATUS "Platform: ${CMAKE_SYSTEM_NAME}")
message(STATUS "Generator: ${CMAKE_GENERATOR}")
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
message(STATUS "CXX compiler: ${CMAKE_CXX_COMPILER_ID}")
message(STATUS "CXX flags: ${CMAKE_CXX_FLAGS}")
+message(STATUS "CXX flags dbg: ${CMAKE_CXX_FLAGS_DEBUG}")
+message(STATUS "CXX flags rel: ${CMAKE_CXX_FLAGS_RELEASE}")
feature_summary(WHAT ALL)
-
diff --git a/baseconfig b/baseconfig
new file mode 100644
index 0000000..5827dbc
--- /dev/null
+++ b/baseconfig
@@ -0,0 +1,90 @@
+mainmenu "smolbote configuration"
+
+comment "Build"
+menu "Compiler settings"
+ config CXX_FLAGS
+ string "Compiler flags"
+ help
+ Compiler flags that should be applied to both Debug and Release builds.
+ default "-fPIE -pipe -fstack-protector-strong -fno-plt"
+
+ config CXX_FLAGS_DEBUG
+ string "Debug flags"
+ help
+ Compiler flags that should be applied to Debug builds.
+ default ""
+
+ config CXX_FLAGS_RELEASE
+ string "Release flags"
+ help
+ Compiler flags that should be applied to Release builds.
+ default "-march=native -mtune=native -O3"
+endmenu
+
+menu "Install paths"
+ config INSTALL_PREFIX
+ string "Install prefix"
+ default "/usr/local"
+ config INSTALL_BIN
+ string "bin/ prefix"
+ default "bin"
+ config INSTALL_LIB
+ string "lib/ prefix"
+ default "lib/smolbote"
+endmenu
+
+comment "Branding"
+config POI_NAME
+ string "Application name"
+ default "smolbote"
+config POI_EXE
+ string "Executable name"
+ default "poi"
+
+comment "Browser configuration"
+menu "Configuration defaults"
+ config PATH_CONFIG
+ string "Configuration location"
+ default "~/.config/smolbote/smolbote.cfg"
+ config PATH_CRASHDUMP
+ string "Crash dump location"
+ default "~/.config/smolbote/crash.d"
+ config PATH_FILTER
+ string "Host filter path"
+ default "~/.config/smolbote/host.d"
+ config PATH_PLUGINS
+ string "Plugin load location"
+ default "~/.config/smolbote/plugins.d"
+ config PATH_PROFILES
+ string "Profile load location"
+ default "~/.config/smolbote/profiles.d"
+ config PATH_BOOKMARKS
+ string "Bookmarks location"
+ default "~/.config/smolbote/bookmarks.xbel"
+ config PATH_DOWNLOADS
+ string "Downloads location"
+ default "~/Downloads"
+endmenu
+
+config USEPLASMA
+ bool "Enable KDE Frameworks integration"
+ default n
+ help
+ This is a help message
+
+config USEBREAKPAD
+ bool "Enable Breakpad integration"
+ default n
+
+comment "Devel"
+config QTWARNINGS
+ bool "Enable Qt deprecated API warnings"
+ default y
+
+config TESTS
+ bool "Build tests"
+ default n
+
+config LLVMLIBCPP
+ bool "Link against the LLVM C++ standard library"
+ default n
diff --git a/cmake/VendorConfig.cmake b/cmake/VendorConfig.cmake
new file mode 100644
index 0000000..42e72c8
--- /dev/null
+++ b/cmake/VendorConfig.cmake
@@ -0,0 +1,49 @@
+string(TOLOWER ${CMAKE_SYSTEM_NAME} SYSTEM_NAME)
+
+if (NOT EXISTS "${PROJECT_SOURCE_DIR}/${SYSTEM_NAME}/.config")
+ message(FATAL_ERROR "No vendor config for ${SYSTEM_NAME}: ${PROJECT_SOURCE_DIR}/${SYSTEM_NAME}/.config is missing")
+endif()
+
+# the .config has been found
+
+# read .config entries that start with CONFIG_ to a list of strings
+file(STRINGS ${PROJECT_SOURCE_DIR}/${SYSTEM_NAME}/.config vendor_config REGEX "^CONFIG_")
+
+# for every item in the list, turn it into a list and set it
+foreach(item IN LISTS vendor_config)
+ #message("${item}")
+ string(REPLACE "\"" "" item ${item})
+ string(REGEX REPLACE "(^CONFIG_[^=]*)=(.*$)" "\\1;\\2" item_list ${item})
+ #message("${item_list}")
+ set(${item_list})
+endforeach()
+
+# Compiler settings
+# Compiler flags
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CONFIG_CXX_FLAGS} ${CONFIG_CXX_FLAGS_DEBUG}")
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CONFIG_CXX_FLAGS} ${CONFIG_CXX_FLAGS_RELEASE}")
+
+# Install paths
+set(CMAKE_INSTALL_PREFIX ${CONFIG_INSTALL_PREFIX})
+
+## Version information, used in src/version.h.in
+if (EXISTS "${PROJECT_SOURCE_DIR}/.git")
+ execute_process(COMMAND git rev-list --count HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerRevision OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND git rev-parse --short HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerShortId OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND git rev-parse HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerCommit OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND git rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerBranch OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+
+set(poi_Version "r${VerRevision}" CACHE STRING "Short version string")
+set(poi_Describe "r${VerRevision}-${VerShortId}" CACHE STRING "Long version string")
+set(poi_Build "${VerBranch}-${VerCommit}" CACHE STRING "Build string")
+
+# linking to libc++ doesn't work
+if (CONFIG_LLVMLIBCPP)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
+endif (CONFIG_LLVMLIBCPP)
+
+if(CONFIG_QTWARNINGS)
+ add_definitions(-DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050900)
+endif(CONFIG_QTWARNINGS)
diff --git a/doc/Building.asciidoc b/doc/Building.asciidoc
index 6fabf8f..431d1e7 100644
--- a/doc/Building.asciidoc
+++ b/doc/Building.asciidoc
@@ -71,13 +71,8 @@ Sets the install location prefix. Install targets are only set on Release builds
- windows: Binary is written to bin/, and plugins to bin/plugins.
- others: Binary will be written to bin/, and plugins to lib/smolbote/.
-=== Using libc++
-You can use libc++ over stdlibc++ by setting UseLibCpp to On. Requires clang.
-
- -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DUseLibCpp=On
-
-// Additional items
-
+// Using Breakpad
include::Building/Breakpad.asciidoc[]
+// Compiling on Windows
include::Building/Windows.asciidoc[]
diff --git a/lib/configuration/defaults.h.in b/lib/configuration/defaults.h.in
index 6a7232e..c64cf2f 100644
--- a/lib/configuration/defaults.h.in
+++ b/lib/configuration/defaults.h.in
@@ -1,14 +1,14 @@
#ifndef SMOLBOTE_DEFAULTS
#define SMOLBOTE_DEFAULTS
-#cmakedefine Path_Config "@Path_Config@"
-#cmakedefine Path_Crashdump "@Path_Crashdump@"
+#define Path_Config "@CONFIG_PATH_CONFIG@"
+#define Path_Crashdump "@CONFIG_PATH_CRASHDUMP@"
-#cmakedefine Path_Filter "@Path_Filter@"
-#cmakedefine Path_Plugins "@Path_Plugins@"
-#cmakedefine Path_Profiles "@Path_Profiles@"
+#define Path_Filter "@CONFIG_PATH_FILTER@"
+#define Path_Plugins "@CONFIG_PATH_PLUGINS@"
+#define Path_Profiles "@CONFIG_PATH_PROFILES@"
-#cmakedefine Path_Bookmarks "@Path_Bookmarks@"
-#cmakedefine Path_Downloads "@Path_Downloads@"
+#define Path_Bookmarks "@CONFIG_PATH_BOOKMARKS@"
+#define Path_Downloads "@CONFIG_PATH_DOWNLOADS@"
#endif // SMOLBOTE_DEFAULTS
diff --git a/linux/.config b/linux/.config
new file mode 100644
index 0000000..37c41dc
--- /dev/null
+++ b/linux/.config
@@ -0,0 +1,52 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# smolbote configuration
+#
+
+#
+# Build
+#
+
+#
+# Compiler settings
+#
+CONFIG_CXX_FLAGS="-fPIE -pipe -fstack-protector-strong -fno-plt"
+CONFIG_CXX_FLAGS_DEBUG=""
+CONFIG_CXX_FLAGS_RELEASE="-march=native -mtune=native -O3"
+
+#
+# Install paths
+#
+CONFIG_INSTALL_PREFIX="/usr/local"
+CONFIG_INSTALL_BIN="bin"
+CONFIG_INSTALL_LIB="lib/smolbote"
+
+#
+# Branding
+#
+CONFIG_POI_NAME="smolbote"
+CONFIG_POI_EXE="poi"
+
+#
+# Browser configuration
+#
+
+#
+# Configuration defaults
+#
+CONFIG_PATH_CONFIG="~/.config/smolbote/smolbote.cfg"
+CONFIG_PATH_CRASHDUMP="~/.config/smolbote/crash.d"
+CONFIG_PATH_FILTER="~/.config/smolbote/host.d"
+CONFIG_PATH_PLUGINS="~/.config/smolbote/plugins.d"
+CONFIG_PATH_PROFILES="~/.config/smolbote/profiles.d"
+CONFIG_PATH_BOOKMARKS="~/.config/smolbote/bookmarks.xbel"
+CONFIG_PATH_DOWNLOADS="~/Downloads"
+CONFIG_USEPLASMA=y
+# CONFIG_USEBREAKPAD is not set
+
+#
+# Devel
+#
+CONFIG_QTWARNINGS=y
+# CONFIG_TESTS is not set
+# CONFIG_LLVMLIBCPP is not set
diff --git a/plugins/ConfigurationEditor/CMakeLists.txt b/plugins/ConfigurationEditor/CMakeLists.txt
index 699366e..5f66e13 100644
--- a/plugins/ConfigurationEditor/CMakeLists.txt
+++ b/plugins/ConfigurationEditor/CMakeLists.txt
@@ -24,7 +24,7 @@ target_link_libraries(ConfigurationEditorPlugin
)
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- install(TARGETS ConfigurationEditorPlugin RUNTIME DESTINATION ${installPath_plugin} CONFIGURATIONS Release)
+ install(TARGETS ConfigurationEditorPlugin RUNTIME DESTINATION ${CONFIG_INSTALL_LIB} CONFIGURATIONS Release)
else()
- install(TARGETS ConfigurationEditorPlugin LIBRARY DESTINATION ${installPath_plugin} CONFIGURATIONS Release)
+ install(TARGETS ConfigurationEditorPlugin LIBRARY DESTINATION ${CONFIG_INSTALL_LIB} CONFIGURATIONS Release)
endif()
diff --git a/plugins/ProfileEditor/CMakeLists.txt b/plugins/ProfileEditor/CMakeLists.txt
index 5bcfcce..6f16b48 100644
--- a/plugins/ProfileEditor/CMakeLists.txt
+++ b/plugins/ProfileEditor/CMakeLists.txt
@@ -41,7 +41,7 @@ target_link_libraries(ProfileEditorPlugin
)
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- install(TARGETS ProfileEditorPlugin RUNTIME DESTINATION ${installPath_plugin} CONFIGURATIONS Release)
+ install(TARGETS ProfileEditorPlugin RUNTIME DESTINATION ${CONFIG_INSTALL_LIB} CONFIGURATIONS Release)
else()
- install(TARGETS ProfileEditorPlugin LIBRARY DESTINATION ${installPath_plugin} CONFIGURATIONS Release)
+ install(TARGETS ProfileEditorPlugin LIBRARY DESTINATION ${CONFIG_INSTALL_LIB} CONFIGURATIONS Release)
endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9425b2d..d6866ac 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -58,24 +58,24 @@ set(srclist
)
# if you are using a custom build location for breakpad:
-#if(Feature_Breakpad)
+#if(CONFIG_USEBREAKPAD)
# link_directories("${BREAKPAD_LIBRARY_DIRS}")
-#endif(Feature_Breakpad)
+#endif(CONFIG_USEBREAKPAD)
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- add_executable(${poi_exe} WIN32 ${srclist} ${PROJECT_SOURCE_DIR}/data/windows.rc)
+ add_executable(${CONFIG_POI_EXE} WIN32 ${srclist} ${PROJECT_SOURCE_DIR}/data/windows.rc)
else()
- add_executable(${poi_exe} ${srclist})
+ add_executable(${CONFIG_POI_EXE} ${srclist})
endif()
-target_include_directories(${poi_exe}
+target_include_directories(${CONFIG_POI_EXE}
PRIVATE ${Boost_INCLUDE_DIRS}
PRIVATE ${PROJECT_SOURCE_DIR}/include
PRIVATE ${PROJECT_SOURCE_DIR}/lib
PRIVATE ${PROJECT_SOURCE_DIR}/plugins
)
-target_link_libraries(${poi_exe}
+target_link_libraries(${CONFIG_POI_EXE}
Qt5::Core Qt5::Widgets Qt5::WebEngineWidgets
${Boost_LIBRARIES}
SingleApplication
@@ -85,24 +85,24 @@ target_link_libraries(${poi_exe}
bookmarks downloads web urlfilter
)
-if(Feature_Breakpad)
- target_link_libraries(${poi_exe} Threads::Threads ${BREAKPAD_LIBRARIES})
- target_include_directories(${poi_exe} PRIVATE ${BREAKPAD_INCLUDE_DIRS})
- target_compile_options(${poi_exe} PRIVATE ${BREAKPAD_CFLAGS_OTHER})
+if(CONFIG_USEBREAKPAD)
+ target_link_libraries(${CONFIG_POI_EXE} Threads::Threads ${BREAKPAD_LIBRARIES})
+ target_include_directories(${CONFIG_POI_EXE} PRIVATE ${BREAKPAD_INCLUDE_DIRS})
+ target_compile_options(${CONFIG_POI_EXE} PRIVATE ${BREAKPAD_CFLAGS_OTHER})
- target_compile_definitions(${poi_exe} PRIVATE BreakpadEnabled)
-endif(Feature_Breakpad)
+ target_compile_definitions(${CONFIG_POI_EXE} PRIVATE BreakpadEnabled)
+endif(CONFIG_USEBREAKPAD)
-if(Feature_Plasma)
- target_link_libraries(${poi_exe} KF5::Wallet KF5::WindowSystem)
- target_compile_definitions(${poi_exe} PRIVATE PLASMA)
-endif(Feature_Plasma)
+if(CONFIG_USEPLASMA)
+ target_link_libraries(${CONFIG_POI_EXE} KF5::Wallet KF5::WindowSystem)
+ target_compile_definitions(${CONFIG_POI_EXE} PRIVATE PLASMA)
+endif(CONFIG_USEPLASMA)
-target_compile_definitions(${poi_exe}
+target_compile_definitions(${CONFIG_POI_EXE}
PRIVATE QAPPLICATION_CLASS=QApplication
- PRIVATE POI_NAME=\"${poi_name}\"
+ PRIVATE POI_NAME="${CONFIG_POI_NAME}"
PRIVATE QTBUG_65223_WORKAROUND
#PRIVATE QTBUG_68224_WORKAROUND
)
-install(TARGETS ${poi_exe} RUNTIME DESTINATION ${installPath_bin} CONFIGURATIONS Release)
+install(TARGETS ${CONFIG_POI_EXE} RUNTIME DESTINATION ${CONFIG_INSTALL_BIN} CONFIGURATIONS Release)
diff --git a/vendor.cmake b/vendor.cmake
deleted file mode 100644
index b6e1819..0000000
--- a/vendor.cmake
+++ /dev/null
@@ -1,61 +0,0 @@
-## Build configuration
-# Feel free to copy this file and change settings as you need. To use your own
-# variant, use -DVendor=<path to your vendor.cmake> when generating the build
-# script.
-
-## Application
-set(poi_exe "poi" CACHE STRING "Executable name")
-set(poi_name "smolbote" CACHE STRING "Application name")
-
-## Configuration paths, used in lib/configuration/defaults.h.in
-if(UNIX)
- set(PathPrefix "~/.config/smolbote")
-else()
- set(PathPrefix ".")
-endif()
-
-set(Path_Config "${PathPrefix}/smolbote.cfg" CACHE STRING "Configuration location")
-set(Path_Crashdump "${PathPrefix}/crash.d" CACHE STRING "Crash dump location")
-
-set(Path_Filter "${PathPrefix}/hosts.d" CACHE STRING "Host path location")
-set(Path_Plugins "${PathPrefix}/plugins.d" CACHE STRING "Plugin load location")
-set(Path_Profiles "${PathPrefix}/profiles.d" CACHE STRING "Profile load location")
-
-set(Path_Bookmarks "${PathPrefix}/bookmarks.xbel" CACHE STRING "Bookmark location")
-set(Path_Downloads "~/Downloads" CACHE STRING "Download location")
-
-## Install Paths
-# Binaries will be installed to ${CMAKE_INSTALL_PREFIX}/${installPath_bin}
-set(installPath_bin bin)
-
-# Plugins will be installed to ${CMAKE_INSTALL_PREFIX}/${installPath_plugin}
-if(WIN32)
- set(installPath_plugin bin/plugins)
-else()
- set(installPath_plugin lib/smolbote)
-endif()
-
-## Version information, used in src/version.h.in
-if (EXISTS "${PROJECT_SOURCE_DIR}/.git")
- execute_process(COMMAND git rev-list --count HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerRevision OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND git rev-parse --short HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerShortId OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND git rev-parse HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerCommit OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND git rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE VerBranch OUTPUT_STRIP_TRAILING_WHITESPACE)
-endif()
-
-set(poi_Version "r${VerRevision}" CACHE STRING "Short version string")
-set(poi_Describe "r${VerRevision}-${VerShortId}" CACHE STRING "Long version string")
-set(poi_Build "${VerBranch}-${VerCommit}" CACHE STRING "Build string")
-
-
-if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -O2")
-
-elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -O2 -march=native")
-
-elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
-
-endif()
-
diff --git a/windows/.config b/windows/.config
new file mode 100644
index 0000000..1ed238f
--- /dev/null
+++ b/windows/.config
@@ -0,0 +1,52 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# smolbote configuration
+#
+
+#
+# Build
+#
+
+#
+# Compiler settings
+#
+CONFIG_CXX_FLAGS=""
+CONFIG_CXX_FLAGS_DEBUG=""
+CONFIG_CXX_FLAGS_RELEASE=""
+
+#
+# Install paths
+#
+CONFIG_INSTALL_PREFIX=""
+CONFIG_INSTALL_BIN=""
+CONFIG_INSTALL_LIB="plugins"
+
+#
+# Branding
+#
+CONFIG_POI_NAME="smolbote"
+CONFIG_POI_EXE="poi"
+
+#
+# Browser configuration
+#
+
+#
+# Configuration defaults
+#
+CONFIG_PATH_CONFIG="smolbote.cfg"
+CONFIG_PATH_CRASHDUMP="crashes"
+CONFIG_PATH_FILTER="hosts"
+CONFIG_PATH_PLUGINS="plugins"
+CONFIG_PATH_PROFILES="profiles"
+CONFIG_PATH_BOOKMARKS="bookmarks.xbel"
+CONFIG_PATH_DOWNLOADS="~/Downloads"
+# CONFIG_USEPLASMA is not set
+# CONFIG_USEBREAKPAD is not set
+
+#
+# Devel
+#
+CONFIG_QTWARNINGS=y
+# CONFIG_TESTS is not set
+# CONFIG_LLVMLIBCPP is not set