From 415be01e3c073e4081ff1f8dec338796fae6d896 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ivar=20H=C3=A4rnqvist?= <ivaha717@student.liu.se>
Date: Tue, 25 Feb 2020 00:04:55 +0100
Subject: [PATCH] fix cmake build output directory on windows

---
 .gitignore     |  3 ++-
 CMakeLists.txt | 35 ++++++++++++++++++-----------------
 LICENSE        |  2 +-
 README.md      |  8 ++++----
 4 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/.gitignore b/.gitignore
index 473e0e34..36987299 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,4 +27,5 @@ ehthumbs_vista.db
 $RECYCLE.BIN/
 *.stackdump
 [Dd]esktop.ini
-*.egg-info
\ No newline at end of file
+*.egg-info
+__pycache__/
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7f6908ed..c2381e4d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,24 +12,26 @@ find_package(pybind11 CONFIG REQUIRED)
 
 set(LIBRARY_NAME "b_asic")
 set(TARGET_NAME "_${LIBRARY_NAME}")
+
 if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
 	include(GNUInstallDirs)
 	set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_INSTALL_LIBDIR}")
 endif()
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_PDB_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_PDB_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_PDB_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 
-add_library(
-	"${TARGET_NAME}" MODULE
-	"${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp"
-)
-add_library(
-	"${TARGET_NAME}:${TARGET_NAME}"
-	ALIAS "${TARGET_NAME}"
-)
-
-set_target_properties(
+pybind11_add_module(
 	"${TARGET_NAME}"
-	PROPERTIES
-		PREFIX ""
+	"${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp"
 )
 
 target_include_directories(
@@ -47,14 +49,14 @@ target_compile_options(
 	"${TARGET_NAME}"
 	PRIVATE
 		$<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:
-			-W -Wall -Wextra -Werror -Wno-psabi -fvisibility=hidden
+			-W -Wall -Wextra -Werror -Wno-psabi
 			$<$<CONFIG:Debug>:-g>
-			$<$<NOT:$<CONFIG:Debug>>:-O3>
+			$<$<NOT:$<CONFIG:Debug>>:-O3 -flto>
 		>
 		$<$<CXX_COMPILER_ID:MSVC>:
-			/W3 /WX /permissive- /utf-8
+			/W3 /WX /permissive- /utf-8 /bigobj
 			$<$<CONFIG:Debug>:/Od>
-			$<$<NOT:$<CONFIG:Debug>>:/Ot>
+			$<$<NOT:$<CONFIG:Debug>>:/Ot /GL /LTCG>
 		>
 )
 
@@ -62,7 +64,6 @@ target_link_libraries(
 	"${TARGET_NAME}"
 	PRIVATE
 		fmt::fmt-header-only
-		pybind11::module
 )
 
 add_custom_target(
diff --git a/LICENSE b/LICENSE
index 17010bd5..669ce41e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2020 TDDD96
+Copyright (c) 2020 TDDD96 PUM4
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 4917b55e..b36a5d82 100644
--- a/README.md
+++ b/README.md
@@ -43,26 +43,26 @@ cmake --build . --config Release
 The output gets written to `B-ASIC/build/lib`.
 
 ### Using setuptools to create a package
-How to create a package using setuptools.
+How to create a package using setuptools that can be installed using pip.
 
 #### Setup (Binary distribution)
 In `B-ASIC`:
 ```
 python3 setup.py bdist_wheel
 ```
-The output gets written to `B-ASIC/dist`.
+The output gets written to `B-ASIC/dist/b_asic-<version>-<python_tag>-<abi_tag>-<platform_tag>.whl`.
 
 #### Setup (Source distribution)
 In `B-ASIC`:
 ```
 python3 setup.py sdist
 ```
-The output gets written to `B-ASIC/dist`.
+The output gets written to `B-ASIC/dist/b-asic-<version>.tar.gz`.
 
 #### Installation (Binary distribution)
 In `B-ASIC`:
 ```
-python3 -m pip install b_asic-<version>-<cpver>-<cpver>_<arch>.whl
+python3 -m pip install b_asic-<version>-<python_tag>-<abi_tag>-<platform_tag>.whl
 ```
 
 #### Installation (Source distribution)
-- 
GitLab